summaryrefslogtreecommitdiff
path: root/app-laptop/i8kutils/files/i8kutils-1.42-Makefile.patch
diff options
context:
space:
mode:
Diffstat (limited to 'app-laptop/i8kutils/files/i8kutils-1.42-Makefile.patch')
-rw-r--r--app-laptop/i8kutils/files/i8kutils-1.42-Makefile.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/app-laptop/i8kutils/files/i8kutils-1.42-Makefile.patch b/app-laptop/i8kutils/files/i8kutils-1.42-Makefile.patch
new file mode 100644
index 000000000000..7dc56d91aa3e
--- /dev/null
+++ b/app-laptop/i8kutils/files/i8kutils-1.42-Makefile.patch
@@ -0,0 +1,34 @@
+Fix a race condition causing parallel builds to sometimes fail.
+
+Both probe_i8k_calls_time and i8kctl contain a main() function, though
+i8kctl's is omitted when built with -DLIB so they can link without a
+conflict. i8kctl is also a standalone exe so it is built twice, with
+and without -DLIB. When building in parallel you can get into a
+situation where the object file created by the probe_i8k_calls_time
+target gets overwritten with the one from i8kctl and bad things happen.
+Nothing actually uses the i8kctl.o that has main() so we can just not
+build it.
+
+Also move CFLAGS, CC, LDFLAGS respect out of the ebuild.
+
+--- a/Makefile
++++ b/Makefile
+@@ -17,13 +17,13 @@ ccflags-y = -Wall
+
+ all: i8kctl probe_i8k_calls_time
+
+-i8kctl: i8kctl.c i8kctl.o
+- gcc -Wall i8kctl.c -o i8kctl
++i8kctl: i8kctl.c
++ $(CC) -Wall ${CFLAGS} -o i8kctl i8kctl.c
+
+ probe_i8k_calls_time: probe_i8k_calls_time.c
+- gcc -Wall -c -g -DLIB i8kctl.c
+- gcc -Wall -c -g -DLIB probe_i8k_calls_time.c
+- gcc -o probe_i8k_calls_time i8kctl.o probe_i8k_calls_time.o
++ $(CC) -Wall ${CFLAGS} -c -DLIB i8kctl.c
++ $(CC) -Wall ${CFLAGS} -c -DLIB probe_i8k_calls_time.c
++ $(CC) -Wall ${CFLAGS} ${LDFLAGS} -o probe_i8k_calls_time i8kctl.o probe_i8k_calls_time.o
+
+ i8k:
+ make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules