Subject: Re: bug#21059: coreutils-8.24 - sync(1) fails to link on Solaris 10 - missing fdatasync() - solution provided (-lrt)

From: Pádraig Brady <[email-masked]>
Date: Wed, 15 Jul 2015 08:41:44 +0100

On 15/07/15 04:10, Peter Bray wrote:
> 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.

I've pushed this in your name:
http://git.sv.gnu.org/gitweb/?p=coreutils.git;a=commitdiff;h=9d25971

Interestingly I didn't hit the issue on a Solaris 10 Update 10 system.

thanks!
Pádraig.