components/coreutils/patches/stdbuf.c.patch
author Rich Burridge <rich.burridge@oracle.com>
Wed, 14 May 2014 12:19:10 -0700
changeset 1895 1f133713df64
parent 1465 26be70b523fc
child 2050 7c6a1559c620
permissions -rw-r--r--
15941179 coreutils "gmake test" failures 18744372 GNU coreutils stdbuf line buffering is broken.

Change needed to get stdbuf to successfully preload libstdbuf.so
for both 32-bit and 64-bit applications.

This change has been passed upstream.

--- coreutils-8.16/src/stdbuf.c.orig	2014-05-12 13:48:24.644347899 -0700
+++ coreutils-8.16/src/stdbuf.c	2014-05-14 09:45:52.507614923 -0700
@@ -200,6 +200,14 @@
   char const *const search_path[] = {
     program_path,
     PKGLIBEXECDIR,
+
+   /* Since we don't link against libstdbuf.so, we need to LD_PRELOAD it.
+      libstdbuf.so lives in /usr/lib and /usr/lib/64, so we just use a
+      search path value of "" and that equates to LD_PRELOAD=libstdbuf.so,
+      and ld.so.1 finds the right one associated with the process class.
+      ie. we don't use full path names for the preload names.  */
+
+    "",              /* System default */
     NULL
   };