[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
coreutils-6.0 on BeOS (3)
From: |
Bruno Haible |
Subject: |
coreutils-6.0 on BeOS (3) |
Date: |
Mon, 21 Aug 2006 20:28:21 +0200 |
User-agent: |
KMail/1.9.1 |
Compiling coreutils-6.0 on BeOS, we have this warning:
source='dirchownmod.c' object='dirchownmod.o' libtool=no \
DEPDIR=.deps depmode=gcc /bin/sh ../build-aux/depcomp \
gcc -DHAVE_CONFIG_H -DLIBDIR=\"/boot/home/config/lib\" -I. -I. -I.. -I.. -I.
-Wall -I/boot/home/config/include -g -O2 -c dirchownmod.c
/boot/home/gnubuild/coreutils-6.0/lib/dirchownmod.c: In function `dirchownmod':
/boot/home/gnubuild/coreutils-6.0/lib/dirchownmod.c:118: warning: implicit
declaration of function `lchown'
/boot/home/gnubuild/coreutils-6.0/lib/dirchownmod.c:138: warning: implicit
declaration of function `fchmod'
followed by this link error:
gcc -g -O2 -o ginstall install.o copy.o cp-hash.o ../lib/libcoreutils.a
/boot/home/config/lib/libintl.so -L/boot/home/config/lib
/boot/home/config/lib/libiconv.so -Wl,-rpath -Wl,/boot/home/config/lib
../lib/libcoreutils.a
../lib/libcoreutils.a(mkdir-p.o): In function `dirchownmod':
/boot/home/gnubuild/coreutils-6.0/lib/dirchownmod.c:137: undefined reference to
`fchmod'
collect2: ld returned 1 exit status
make[3]: *** [ginstall] Error 1
make[3]: Leaving directory `/boot/home/gnubuild/coreutils-6.0/src'
The reason is that BeOS doesn't have fchmod. This fixes it.
2006-08-19 Bruno Haible <address@hidden>
BeOS portability.
* lib/dirchownmod.c (dirchownmod): Fall back to lchmod or chmod if
fchmod doesn't exist.
*** lib/dirchownmod.c.bak 2006-07-17 05:05:23.000000000 +0200
--- lib/dirchownmod.c 2006-08-19 14:47:17.000000000 +0200
***************
*** 134,144 ****
{
mode_t chmod_mode =
mode | (dir_mode & CHMOD_MODE_BITS & ~mode_bits);
! result = (0 <= fd
! ? fchmod (fd, chmod_mode)
! : mkdir_mode != (mode_t) -1
! ? lchmod (dir, chmod_mode)
! : chmod (dir, chmod_mode));
}
}
}
--- 134,147 ----
{
mode_t chmod_mode =
mode | (dir_mode & CHMOD_MODE_BITS & ~mode_bits);
! #if HAVE_FCHMOD
! if (0 <= fd)
! result = fchmod (fd, chmod_mode);
! else
! #endif
! result = (mkdir_mode != (mode_t) -1
! ? lchmod (dir, chmod_mode)
! : chmod (dir, chmod_mode));
}
}
}
- coreutils-6.0 on BeOS (3),
Bruno Haible <=