aboutsummaryrefslogtreecommitdiff
path: root/archival/tar.c
diff options
context:
space:
mode:
authorRob Landley <rob@landley.net>2006-08-29 21:46:10 +0000
committerRob Landley <rob@landley.net>2006-08-29 21:46:10 +0000
commit1fdd83f8979cff7875de53dfa3f99bd7d9ac838d (patch)
treed9fbbaa0b81a5f3610a434caf96a51c58a02d031 /archival/tar.c
parent31e2c00ec3eb10dc09585cb6d693920432069da5 (diff)
downloadbusybox-1fdd83f8979cff7875de53dfa3f99bd7d9ac838d.tar.gz
There's some strange bug in glibc that triggers if you combine the
--gc-sections linker flag with static linking. If this happens, then the "stdout" variable (used by printf() and such) will only work if stdout is _not_ redirected. I.E "./busybox" prints stuff, but "./busybox | cat" does not produce any output. (But even when redirected, "write(1,"blah",4);" continues to work just fine.) This is clearly a glibc bug, but to avoid triggering it I've moved the --gc-sections flag so it only gets added when we're not statically linking. If somebody would like to go poke Ulrich Drepper, you can trivially reproduce this with a "hello world" program, ala: gcc -static -Wl,--gc-sections hello.c && (./a.out | cat)
Diffstat (limited to 'archival/tar.c')
0 files changed, 0 insertions, 0 deletions