nixpkgs/pkgs/servers/x11/xorg/imake-cc-wrapper-uberhack.patch
Tuomas Tynkkynen 0100b27069 imake: Add uberhack to workaround broken 'gcc -x c'
Our cc-wrapper is broken whenever the '-x' flag is used:
'gcc -x c foo.c -o bar' doesn't work the same way as 'gcc foo.c -o bar'
does. (Try both with NIX_DEBUG=1.)

What happens is that passing '-x' causes linker-related flags (such as
-Wl,-dynamic-linker) not to be added, just like if '-c' is passed.
The bug happens outside the multiple-outputs branch as well, but it
doesn't break imake there. It only breaks in multiple-outputs because
linking without -Wl,-dynamic-linker produces a binary with an invalid
ELF interpreter path. (Which arguably, is a bug in its own.)
2015-10-03 14:08:51 +02:00

13 lines
347 B
Diff

diff --git a/imake.c b/imake.c
index c20cd4a..ec2589b 100644
--- a/imake.c
+++ b/imake.c
@@ -959,7 +959,7 @@ get_libc_version(FILE *inFile)
{
char aout[4096], *tmpdir;
FILE *fp;
- const char *format = "%s -o %s -x c -";
+ const char *format = "f=$(mktemp imakeXXXXXX.c); cat > $f; %s $f -o %s";
char *cc;
int len;
char *command;