mailing list of musl libc
 help / color / mirror / code / Atom feed
From: orc <orc@sibserver.ru>
To: musl@lists.openwall.com
Subject: Re: bug? sysinfo() and getopt_long() misbehavior
Date: Fri, 8 Jun 2012 13:27:31 +0800	[thread overview]
Message-ID: <20120608132731.042df3b2@sibserver.ru> (raw)
In-Reply-To: <20120608031243.GG163@brightrain.aerifal.cx>

On Thu, 7 Jun 2012 23:12:43 -0400
Rich Felker <dalias@aerifal.cx> wrote:

> On Fri, Jun 08, 2012 at 12:51:48AM +0800, orc wrote:
> > I have built a musl-enabled system and encountered some bugs:
> > 
> > - sysinfo() incorrectly works. The result is busybox' free
> > misbehaving:
> 
> Thanks for the catch. Apparently the structure definition was bogus
> and was not intended for direct use with the linux sysinfo syscall.
> It's fixed in git.
Thanks!
> 
> > - (did not investigated properly) possible getopt_long()
> > misbehavior, or just miscompile. The result is that iptables and
> > gnu sed misbehaving at command line arguments:
> > % sed -i '/test/d' ttnosuchfile
> > sed: can't find label for jump to `tnosuchfile'
> 
> My GNU sed build does not exhibit this behavior. It's linked with an
> older musl, but the getopt code has not changed. Is it possible you
> did anything odd building musl (editing the makefile/cflags)? Does the
> same happen if you static link sed? If your answers to these questions
> suggest a problem in musl, I'll rebuild sed and see if I can reproduce
> it.
> 
> > % sed '/test/d' -i ttnosuchfile
> > sed: can't read -i: No such file or directory
> > sed: can't read ttnosuchfile: No such file or directory
> 
> This is to be expected. Options must come before non-option arguments.
> The glibc behavior to the contrary is broken and non-conformant.
Yes, I expected that glibc encourages wrong behavior.
Sorry, that was my fault: I actually *cross-compiled* sed and it's
autohell misdetected something during it (as it usually happens). When
native-compiling, problem gone away. (I think the same will be with
e2fsprogs, their cross-compiled versions die with GPF on target)
> 
> > # iptables -vnL
> > iptables v1.4.12.1: unknown arguments found on commandline
> > Try `iptables -h' or 'iptables --help' for more information.
> > # iptables --version
> > iptables v1.4.12.1: unknown arguments found on commandline
> > Try `iptables -h' or 'iptables --help' for more information.
> > 
> > Both sed and iptables were compiled with -D_GNU_SOURCE defined.
> > 
> > Unfortunately I don't actually know how to fix these two.
> 
> I'm suspecting something is broken with respect to dynamic linking...
> Are you using an old version of binutils? Did you remove or replace
> -Bsymbolic-functions with something else?
Binutils 2.20, musl compiled with -Bsymbolic-functions. But statically
or dynamically linked iptables still rejects to accept arguments.
It required ugly fix to work, mostly same as iproute2, removing some
non-conformant extensions, correct headers, maybe there is a fault. It
also expects somewhere that we have glibc (#ifdef __GLIBC__) headers.
Maybe it's code is non-conformant in whole. I will try to see where it
fails on host.
> 
> Rich



  reply	other threads:[~2012-06-08  5:27 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-07 16:51 orc
2012-06-08  3:12 ` Rich Felker
2012-06-08  5:27   ` orc [this message]
2012-06-08 12:12     ` orc
2012-06-08 14:12       ` Rich Felker
2012-07-01 10:20         ` orc
2012-06-08  5:37   ` Isaac Dunham
2012-06-08 14:10     ` Rich Felker

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120608132731.042df3b2@sibserver.ru \
    --to=orc@sibserver.ru \
    --cc=musl@lists.openwall.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/musl/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).