Hi Paul,

A link error was reported for GNU gettext 0.17 on Solaris, due to a missing
'acl_trivial' function: <http://savannah.gnu.org/bugs/?21604>

What happens is:
  - m4/acl.m4 detects that acl_trivial is present in libsec, and sets
    LIB_ACL_TRIVIAL to "-lsec".
  - But the module description modules/acl only mentions the use of
    $(LIB_ACL), not of $(LIB_ACL_TRIVIAL).
  - gettext links with $(LIB_ACL) but not with $(LIB_ACL_TRIVIAL).

I can see two possible fixes:
  1) In m4/acl.m4, replace the statement
       AC_SUBST([LIB_ACL_TRIVIAL])
     with
       LIB_ACL="$LIB_ACL_TRIVIAL $LIB_ACL"
  2) Change the module description modules/acl to mention
     $(LIB_ACL_TRIVIAL) $(LIB_ACL).

The fact that m4/acl.m4 contains just a single macro, AC_FUNC_ACL, hints
that 1) is the right fix.

The coreutils/src/Makefile.am, however, uses $(LIB_ACL_TRIVIAL) for some
programs ('ls') but not for others ('cp', 'mv', 'install'). This hints
that 2) is the right fix.

But how come that some programs use the 'acl' module and nevertheless don't
need $(LIB_ACL_TRIVIAL) ? Possibly the 'acl' module is the combination of
two different functionalities, and should better be split into two different
modules - one which relies on $(LIB_ACL_TRIVIAL) $(LIB_ACL) and one which
relies only on $(LIB_ACL) ?

Bruno


Reply via email to