| 
  | 
Message-ID: <CAPLrYES-Dt+op27HUXOHGGsjY4FQh8tkwb7F7_NDE+HDyKiyuA@mail.gmail.com>
Date: Sun, 30 Sep 2012 23:06:55 +0200
From: Daniel Cegiełka <daniel.cegielka@...il.com>
To: musl@...ts.openwall.com
Subject: Re: better compatibility with bsd getopt()
2012/9/30 John Spencer <maillist-musl@...fooze.de>:
> an application that relies on non-posix getopt behaviour should come with a
> configure check and use an alternate impl if the getopt detected is not
> compatible.
> almost any program does so already, but for those that don't (like iptables)
> you can use https://github.com/rofl0r/gnu-getopt (tarball available on
> sabotage mirror, or in downloads section of the page).
> this bundles the netbsd getopt into a standalone library that can easily be
> linked to programs.
Without optreset support some BSD programs will not be able to
compile, like patch:
	if (!Argc)
		return;
	optreset = optind = 1;
	while ((ch = getopt_long(Argc, Argv, options, longopts, NULL)) != -1) {
		switch (ch) {
		case 'b':
http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/patch/patch.c?rev=1.50;content-type=text%2Fplain
Your example shows that the gnu-getopt is also a problem. It may be
better to keep musl clean and solve these problems outside of musl. So
a good solution for us is to use a getopt() wrapper for problematic apps,
like gnu_getopt() or bsd_getopt().
Daniel
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.