[PATCH 06/39] win32: add missing system headers

Rob Landley rob at landley.net
Sat Apr 24 23:10:23 UTC 2010


On Sunday 18 April 2010 12:31:22 Mikhail Gusarov wrote:
> Twas brillig at 01:27:35 18.04.2010 UTC-05 when rob at landley.net did gyre and 
gimble:
>  >>  create mode 100644 win32/grp.h
>  >>  create mode 100644 win32/netdb.h
>  >>  create mode 100644 win32/pwd.h
>  >>  create mode 100644 win32/sys/ioctl.h
>  >>  create mode 100644 win32/sys/mman.h
>  >>  create mode 100644 win32/sys/poll.h
>  >>  create mode 100644 win32/sys/socket.h
>  >>  create mode 100644 win32/sys/wait.h
>  >>  create mode 100644 win32/termios.h
>
>  RL> Surely this is a defect in your build environment?  These are
>  RL> standard system headers.  Your C library is defective.
>
> Where did you see Windows with ioctl()?

The _standard_ is posix.  Windows claims to be posix compliant back to NT4, 
and ioctl() is in posix.  (Admittedly for streams support but the prototype's 
the same.)

If the approach here was "let busybox build/run whatever subset of its 
functionality works under a strict posix environment", I'd be ok with that.  
CONFIG_POSIX as a prerequisite for 8 gazillion other config symbols, it'd 
probably switch off a lot of apps (including "mount" and "init" which aren't 
defined in posix).

But that's not what's being proposed here.  I mentioned tinycc turning into a 
windows project because that transition essentially drove all the Linux 
developers away.

Your question implies that I should have some windows knowledge as a 
prerequisite for doing busybox development.  "We did I see Windows"?  I 
didn't.  I don't do windows.  I'm not going to start.

Let's get back to what you're question's implying, though.  You're saying that 
Windows doesn't do ioctl().  I'll take your word for it.  So what's the point 
of adding the header?  If windows hasn't got the function, it can't use apps 
that need that function.  If a posix compatability library can supply that 
function, then use that compatability library.  Don't bloat busybox with 
shims.  Go bug the GNU project if you want that, they've got buckets of it.

The code is small and simple precisely because of the ABSENCE of the kind of 
stuff this thread is proposing to add.  It's a 39-patch series providing the 
BASIC INFRASTRUCTURE FOR FUTURE BLOAT.  The patch series by itself 
accomplishes essentially nothing, it needs WAY MORE ADDITIONAL CODE to maybe 
someday provide anything useful.

This entire conersation strikes me as "drill baby drill" reasoning.  "You've 
got such lovely unspoilt forests, let us clearcut them for you."  Becase 
obviously the only _reason_ we'd ever have carefully maintained anything is so 
somebody could come along and strip-mine it.

Talking about how much money the lumber would bring in is NOT THE POINT.  Yes 
it would be great for the Windows guys if BusyBox was a windows project, but 
it's not.  It's a Linux project with an unrealized promise of being a Posix 
project.  If you haven't got a Posix environment less bloated than Cygwin 
that's not our problem.  Fix/replace Cygwin.

Off to re-watch the Monty Python "Can we have your liver?" scene...

Rob
-- 
Latency is more important than throughput. It's that simple. - Linus Torvalds


More information about the busybox mailing list