From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.org/gmane.linux.lib.musl.general/2190 Path: news.gmane.org!not-for-mail From: John Spencer Newsgroups: gmane.linux.lib.musl.general Subject: Re: Pending issues for release Date: Wed, 24 Oct 2012 22:06:01 +0200 Message-ID: <50884A29.7030200@barfooze.de> References: <20121018182957.GA18080@brightrain.aerifal.cx> <20121019021727.GK254@brightrain.aerifal.cx> <50880681.9000500@barfooze.de> <20121024175834.GH254@brightrain.aerifal.cx> Reply-To: musl@lists.openwall.com NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1351109191 30452 80.91.229.3 (24 Oct 2012 20:06:31 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 24 Oct 2012 20:06:31 +0000 (UTC) To: musl@lists.openwall.com Original-X-From: musl-return-2191-gllmg-musl=m.gmane.org@lists.openwall.com Wed Oct 24 22:06:39 2012 Return-path: Envelope-to: gllmg-musl@plane.gmane.org Original-Received: from mother.openwall.net ([195.42.179.200]) by plane.gmane.org with smtp (Exim 4.69) (envelope-from ) id 1TR7Dq-0001Zg-61 for gllmg-musl@plane.gmane.org; Wed, 24 Oct 2012 22:06:38 +0200 Original-Received: (qmail 5955 invoked by uid 550); 24 Oct 2012 20:06:30 -0000 Mailing-List: contact musl-help@lists.openwall.com; run by ezmlm Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: Original-Received: (qmail 5947 invoked from network); 24 Oct 2012 20:06:30 -0000 User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.14) Gecko/20110221 SUSE/3.1.8 Mail/1.0 In-Reply-To: <20121024175834.GH254@brightrain.aerifal.cx> Xref: news.gmane.org gmane.linux.lib.musl.general:2190 Archived-At: On 10/24/2012 07:58 PM, Rich Felker wrote: > On Wed, Oct 24, 2012 at 05:17:21PM +0200, John Spencer wrote: >> On 10/19/2012 04:17 AM, Rich Felker wrote: >>>> - explicit mips soft-float abi support (mainly for use with broken >>>> openwrt kernels) >>> Still need to figure out how best to do this... >> i think this one is also not critical for this release, and can be >> postponed. > I agree it's not _critical_, but since OpenWRT is one of the main > MIPS platforms people might be interested in, it's rather frustrating > that we can't make working binaries for it. Ultimately somebody > building a musl-based OpenWRT or similar would want to rebuild a > proper kernel without float ripped out of it (this will definitely > give a net space _savings_ when you count the soft-float code getting > linked into userspace programs), but if you're just trying to get a > few new musl-based binaries onto an existing OpenWRT installation, you > may need to play by their rules and use softfloat. > > Maybe there's some quick partial-workaround we could document in the > FAQ or such? > i haven't run into this; maybe simply passing -msoft-float to gcc fixes it ? >>>> - make endian.h more robust for opposite-endian builds (mipsel, armeb) >>> Done. >>> >>>> And a few other things that might make it in, if I get around to them: >>>> >>>> - fenv support on mips and microblaze >>> Done on mips; microblaze does not seem to have working hard-float. >>> >>>> - additional use of vfork (system, popen, wordexp, etc.) >>> Mostly done. wordexp remains, and should possibly be reworked to use >>> popen or posix_spawn as its backend to avoid code duplication. >> what's the current status on this one ? > Everything except wordexp is done, but they're not heavily > regression-tested. wordexp is rather low priority since nothing > serious uses it. Care to check that system, popen, and posix_spawn are > working okay in some real use cases? i'd prefer having an official tarball (explained below) and testing with that; and since 0.9.7 is an odd version number, it is expected to be buggy anyway... ;) >> i hope for the release to come out soon, to experiment with the new >> TLS support in qemu. > What sort of experimentation do you have in mind? Is it anything we > could do before a release to help ensure that it's all correctly > working? while building for the mips target, i encountered a serious (show-stopper) breakage building perl. the in-build perl binary tried to execute code, which apparently was data (smells like gcc or dynamic linker breakage), and crashed, unable to complete the build. Program received signal SIGILL, Illegal instruction. 0x00593c10 in PL_ppaddr () (gdb) disas Dump of assembler code for function PL_ppaddr: => 0x00593c10 <+0>: 0x4b5048 (gdb) disas *0x00593c10 Dump of assembler code for function Perl_pp_null: 0x004b5048 <+0>: lui gp,0x5a 0x004b504c <+4>: addiu gp,gp,-12224 ... => 0x00593c10 <+0>: 0x4b5048 ? perl-5.16.0/op.c: first->op_ppaddr = PL_ppaddr[OP_QR]; since --disable-tls doesn't work on MIPS (not implemented in GCC 3.4.6), i had to specifically patch elfutils to use a static variable instead of a TLS one. i hope that having real TLS and getting rid of that possibly buggy workaround (which could affect gcc, the only libelf-consumer) fixes this issue. it's also possible that it is a bug in the dynlinker that has been fixed since 0.9.6. additionally i updated stage1 gcc from 4.5.3 to 4.5.4 since. and now to why i want to test with a release instead of a git checkout: it takes about 2-3 days to get that far with the compilation times on qemu mips, so i'd prefer to use a release for that, in order not to have to pull in a huge cumulative add-tls patch into sabotage's commit history, and not having to use git, which is even worse: 1) i'd have to have git available in the bootstrap environment, which is a pain to build with all its dependencies, and 2) network connectivity has to work, which is not the case for aboriginal mips image i use, 3) to have a reproducible result, i'd had to switch "official" sabotage to use git as well (pulling in said dependencies), and as soon as a release is out, do everything again to test that nothing broke, and so we can use a tarball which is the way everything's designed to work. maybe a better alternative for this scenario is if you would supply development snapshot tarballs, potentially once a week automatically generated from git head, and automatically deleted after 6 months. this would free you from the pressure that everything has to be perfect for a release, and we integrators have something we can use to quickly do updates and regression tests without using hacks in our build systems.