[username@localhost source]# ./configure --with-fhs --prefix=/usr
--sysconfdir=/etc --with-privatedir=/etc/samba
--with-lockdir=/var/state/samba --localstatedir=/var --with-netatalk
--with-smbmount --with-pam --with-syslog --with-sambabook --with-utmp
--with-acl-support > ~/myconfig.out 2>&1
[username@localhost source]# cat ~/myconfig.out | grep acl
checking for sys/acl.h... yes
checking for _acl... no
checking for __acl... no
checking for _facl... no
checking for __facl... no
checking whether to support ACLs... checking for acl_get_file in
-lacl... no
The log shows that acl_get_file is not found because:
configure:13177: gcc -o conftest -O -O2 -march=i386 -mcpu=i686
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
-Wl,-rpath,/usr/lib conftest.c -lacl -lcups -lssl -lcrypto -lnsl
-lcrypt -lpam 1>&5
/lib/libacl.so: undefined reference to `fgetxattr'
/lib/libacl.so: undefined reference to `removexattr'
/lib/libacl.so: undefined reference to `setxattr'
/lib/libacl.so: undefined reference to `fsetxattr'
/lib/libacl.so: undefined reference to `getxattr'
collect2: ld returned 1 exit status
configure: failed program was:
#line 13166 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
builtin and then its argument prototype would still apply. */
char acl_get_file();
int main() {
acl_get_file()
; return 0; }
// note how it did find acl_get_file but there were other unresolved
symbols
immediately after that...
configure:13205: checking for ACL support
configure:13219: gcc -o conftest -O -O2 -march=i386 -mcpu=i686
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE
-Wl,-rpath,/usr/lib conftest.c -lcups -lssl -lcrypto -lnsl -lcrypt
-lpam 1>&5
/tmp/ccycWmr0.o: In function `main':
/tmp/ccycWmr0.o(.text+0xa): undefined reference to `acl_get_entry'
collect2: ld returned 1 exit status
configure: failed program was:
#line 13211 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/acl.h>
int main() {
acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry(
acl, entry_id, entry_p);
; return 0; }
// simply an undefined reference....
The first one will compile fine if I add in -lattr. The second one will
result in the same error as the first if I only include -lacl. If I
include both -lattr and -lacl then the second one will also compile
fine.
I actually had almost identical problems when configuring 2.2.5 and made
some sort of a hack to get around it. Is this a problem with the way my
system is configured?
I'm using XFS with acl-2.0.9 and attr-2.0.7. I have 2.2.5 working fine
with ACL support.
Should I hack my way through it again, or is there something else that I
can do?
Thanks.
--Kaleb