[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#21059: coreutils-8.24 - sync(1) fails to link on Solaris 10 - missin
From: |
Peter Bray |
Subject: |
bug#21059: coreutils-8.24 - sync(1) fails to link on Solaris 10 - missing fdatasync() - solution provided (-lrt) |
Date: |
Wed, 15 Jul 2015 13:10:16 +1000 |
User-agent: |
Mozilla/5.0 (X11; SunOS i86pc; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 |
Greetings,
In attempting to build coreutils-8.24 on Sun Solaris 10 Update 8 and
Oracle Solaris 10 Update 11 (both X86 VMs where the OS is unpatched),
I found that the GNU coreutils sync(1) command would not link, failing
to find the symbol 'fdatasync'.
Investigations show that "configure" correctly detects that
fdatasync() is found in -lrt, the $(LIB_FDATASYNC) make variable has
the correct value. It is just not used in the building of sync(1).
The solution seems simple enough, the addition of $(LIB_FDATASYNC) to
the "src_sync_LDADD" line of the Makefile. This change has been tested
on both releases of Solaris 10 mentioned above and Oracle Solaris 11.2
were the change is not needed (as LIB_FDATASYNC value is the empty
string). That is, fdatasync() is no longer in -lrt on Solaris 11.2
The proper solution would be to update "Makefile.in" (identical
change) or more likely "src/local.mk" (identical change), but as these
systems do not yet have autotools, I have not developed or tested a
final solution. Given the trivial nature of the change, I hope this
will not be an impediment to its acceptance.
Regards,
Peter Bray
Sydney, Australia
The unified GNU diff(1) output of the change as tested is:
--- ./Makefile.orig 2015-07-13 09:33:44.202439000 +0000
+++ ./Makefile 2015-07-13 09:33:50.601564126 +0000
@@ -4534,7 +4534,7 @@
src_stdbuf_LDADD = $(LDADD) $(LIBICONV)
src_stty_LDADD = $(LDADD)
src_sum_LDADD = $(LDADD)
-src_sync_LDADD = $(LDADD)
+src_sync_LDADD = $(LDADD) $(LIB_FDATASYNC)
src_tac_LDADD = $(LDADD)
src_tail_LDADD = $(LDADD) $(LIB_NANOSLEEP)
src_tee_LDADD = $(LDADD)
From the fdatasync(3RT) manual page, on Solaris 10:
NAME
fdatasync - synchronize a file's data
SYNOPSIS
cc [ flag... ] file... -lrt [ library... ]
#include <unistd.h>
int fdatasync(int fildes);
- bug#21059: coreutils-8.24 - sync(1) fails to link on Solaris 10 - missing fdatasync() - solution provided (-lrt),
Peter Bray <=