There's this "Argument list too long" nonsense. It makes me work in a ~/X
directory, because that way my pathnames shorten to an extent enough to execute
the build commands of a brain-crippled Makefile.
This ~/X business made me worry, since in the near future I might run out of
characters again. So I googled for "Argument list too long", and the second
result was this:
From http://lists.gnu.org/archive/html/bug-fileutils/2001-10/msg00048.html:
"It is an architecture limitation of UNIX-like operating systems.
However, it is one that is easily worked around using the supplied utilities."
Then it mentioned xargs. Too bad you can't split a gcc command line to many
smaller ones. Too bad you can't force processes that spawn processes to use
xargs. Supplied utilities up my arse.
I have an excellent idea for a start-up company, "Arguments, Inc.". The core
technology is:
* Implement a custom loader on top of exec() & mmap(). The loader works just
like exec(), except for allocating a buffer for the arguments properly.
* Write a program unfuck_args that runs the given command line using this loader
and ptraces it.
* Whenever ptrace spots an exec() syscall, it implements it using the stupid
loader, and has the process ptraced, so that arguments are unfucked throughout
the process subtree.
However, before I start raising funds, I would be very curious to find out about
a different, not entirely idiotic workaround.