Skip to content

Commit

Permalink
Updated to fedora-glibc-20070510T2308
Browse files Browse the repository at this point in the history
  • Loading branch information
Jakub Jelinek committed May 10, 2007
1 parent 6bad2cd commit e169ea9
Show file tree
Hide file tree
Showing 24 changed files with 392 additions and 19 deletions.
28 changes: 28 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,31 @@
2007-05-10 Ulrich Drepper <drepper@redhat.com>

* io/sys/stat.h: Make sure struct timespec is defined for
__USE_ATFILE.

* sysdeps/unix/sysv/linux/powerpc/bits/stat.h: Define UTIME_NOW and
UTIME_OMIT.
* sysdeps/unix/sysv/linux/x86_64/bits/stat.h: Likewise.
* sysdeps/unix/sysv/linux/sparc/bits/stat.h: Likewise.
* sysdeps/unix/sysv/linux/alpha/bits/stat.h: Likewise.
* sysdeps/unix/sysv/linux/ia64/bits/stat.h: Likewise.
* sysdeps/unix/sysv/linux/bits/stat.h: Likewise.
* sysdeps/unix/sysv/linux/s390/bits/stat.h: Likewise.
* sysdeps/unix/sysv/linux/kernel-features.h: Define __ASSUME_UTIMENSAT.
* io/sys/stat.h: Declare utimensat, futimens.
* io/utimensat.c: New file.
* io/futimens.c: New file.
* sysdeps/unix/sysv/linux/utimensat.c: New file.
* sysdeps/unix/sysv/linux/futimens.c: New file.
* io/Makefile (routines): Add utimensat, futimens.
* io/Versions: Add utimensat, futimens to GLIBC_2.6.
* sysdeps/unix/sysv/linux/lutimes.c: New file.
* sysdeps/unix/sysv/linux/futimes.c: Use utimensat syscall if
available.

* include/sys/cdefs.h: Redefine __nonnull so that test for
incorrect parameters in the libc code itself are not omitted.

2006-07-02 Jakub Jelinek <jakub@redhat.com>

* nscd/connections.c (sighup_pending): New variable.
Expand Down
4 changes: 2 additions & 2 deletions fedora/branch.mk
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ glibc-branch := fedora
glibc-base := HEAD
DIST_BRANCH := devel
COLLECTION := dist-fc7
fedora-sync-date := 2007-05-10 06:34 UTC
fedora-sync-tag := fedora-glibc-20070510T0634
fedora-sync-date := 2007-05-10 23:08 UTC
fedora-sync-tag := fedora-glibc-20070510T2308
5 changes: 4 additions & 1 deletion fedora/glibc.spec.in
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
%define glibcrelease 23
%define glibcrelease 24
%define auxarches i586 i686 athlon sparcv9 alphaev6
%define xenarches i686 athlon
%ifarch %{xenarches}
Expand Down Expand Up @@ -1561,6 +1561,9 @@ rm -f *.filelist*
%endif

%changelog
* Fri May 11 2007 Jakub Jelinek <jakub@redhat.com> 2.5.90-24
- utimensat, futimens and lutimes support

* Thu May 10 2007 Jakub Jelinek <jakub@redhat.com> 2.5.90-23
- use madvise MADV_DONTNEED in malloc
- fix ia64 feraiseexcept
Expand Down
6 changes: 6 additions & 0 deletions include/sys/cdefs.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@

#include <misc/sys/cdefs.h>

/* The compiler will optimize based on the knowledge the parameter is
not NULL. This will omit tests. A robust implementation cannot allow
this so when compiling glibc itself we ignore this attribute. */
#undef __nonnull
#define __nonnull(params)

extern void __chk_fail (void) __attribute__ ((__noreturn__));
libc_hidden_proto (__chk_fail)
rtld_hidden_proto (__chk_fail)
Expand Down
3 changes: 2 additions & 1 deletion io/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,8 @@ routines := \
ftw ftw64 fts poll ppoll \
posix_fadvise posix_fadvise64 \
posix_fallocate posix_fallocate64 \
sendfile sendfile64
sendfile sendfile64 \
utimensat futimens

# These routines will be omitted from the libc shared object.
# Instead the static object files will be included in a special archive
Expand Down
3 changes: 3 additions & 0 deletions io/Versions
Original file line number Diff line number Diff line change
Expand Up @@ -113,4 +113,7 @@ libc {

ppoll;
}
GLIBC_2.6 {
utimensat; futimens;
}
}
36 changes: 36 additions & 0 deletions io/futimens.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
/* Change access and modification times of open file. Linux version.
Copyright (C) 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */

#include <errno.h>
#include <fcntl.h>
#include <string.h>
#include <time.h>
#include <sysdep.h>


/* Change the access time of the file associated with FD to TSP[0] and
the modification time of FILE to TSP[1]. */
int
futimens (int fd, const struct timespec tsp[2])
{
__set_errno (ENOSYS);
return -1;
}
stub_warning (futimens)
#include <stub-tag.h>
20 changes: 18 additions & 2 deletions io/sys/stat.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,12 @@

#include <bits/types.h> /* For __mode_t and __dev_t. */

#if defined __USE_XOPEN || defined __USE_MISC
#if defined __USE_XOPEN || defined __USE_XOPEN2K || defined __USE_MISC \
|| defined __USE_ATFILE
# if defined __USE_XOPEN || defined __USE_XOPEN2K
# define __need_time_t
# endif
# ifdef __USE_MISC
# if defined __USE_MISC || defined __USE_ATFILE
# define __need_timespec
# endif
# include <time.h> /* For time_t resp. timespec. */
Expand Down Expand Up @@ -354,6 +355,21 @@ extern int mkfifoat (int __fd, __const char *__path, __mode_t __mode)
__THROW __nonnull ((2));
#endif

#ifdef __USE_ATFILE
/* Set file access and modification times relative to directory file
descriptor. */
extern int utimensat (int __fd, __const char *__path,
__const struct timespec __times[2],
int __flags)
__THROW __nonnull ((2));
#endif

#ifdef __USE_GNU
/* XXX This will change to the macro for the next 2008 POSIX revision. */
/* Set file access and modification times of the file associated with FD. */
extern int futimens (int __fd, __const struct timespec __times[2]) __THROW;
#endif

/* To allow the `struct stat' structure and the file type `mode_t'
bits to vary without changing shared library major version number,
the `stat' family of functions and `mknod' are in fact inline
Expand Down
34 changes: 34 additions & 0 deletions io/utimensat.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/* Change access and modification times of open file. Stub version.
Copyright (C) 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */

#include <errno.h>
#include <sys/stat.h>


/* Change the access time of FILE to TSP[0] and
the modification time of FILE to TSP[1]. */
int
utimensat (int fd, const char *file, const struct timespec tsp[2],
int flags)
{
__set_errno (ENOSYS);
return -1;
}
stub_warning (utimensat)
#include <stub-tag.h>
6 changes: 6 additions & 0 deletions nptl/ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
2007-05-10 Jakub Jelinek <jakub@redhat.com>

[BZ #4455]
* tst-align2.c: Include stackinfo.h.
* tst-getpid1.c: Likewise.

2007-05-02 Carlos O'Donell <carlos@systemhalted.org>

[BZ #4455]
Expand Down
1 change: 1 addition & 0 deletions nptl/tst-align2.c
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include <sys/wait.h>
#include <unistd.h>
#include <tst-stack-align.h>
#include <stackinfo.h>

static int
f (void *arg)
Expand Down
1 change: 1 addition & 0 deletions nptl/tst-getpid1.c
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <stackinfo.h>

#ifndef TEST_CLONE_FLAGS
#define TEST_CLONE_FLAGS 0
Expand Down
6 changes: 6 additions & 0 deletions sysdeps/unix/sysv/linux/alpha/bits/stat.h
Original file line number Diff line number Diff line change
Expand Up @@ -149,3 +149,9 @@ struct stat64
#define __S_IREAD 0400 /* Read by owner. */
#define __S_IWRITE 0200 /* Write by owner. */
#define __S_IEXEC 0100 /* Execute by owner. */

#if defined __USE_ATFILE || defined __USE_GNU
/* XXX This will change to the macro for the next 2008 POSIX revision. */
# define UTIME_NOW ((1l << 30) - 1l)
# define UTIME_OMIT ((1l << 30) - 2l)
#endif
6 changes: 6 additions & 0 deletions sysdeps/unix/sysv/linux/bits/stat.h
Original file line number Diff line number Diff line change
Expand Up @@ -161,3 +161,9 @@ struct stat64
#define __S_IREAD 0400 /* Read by owner. */
#define __S_IWRITE 0200 /* Write by owner. */
#define __S_IEXEC 0100 /* Execute by owner. */

#if defined __USE_ATFILE || defined __USE_GNU
/* XXX This will change to the macro for the next 2008 POSIX revision. */
# define UTIME_NOW ((1l << 30) - 1l)
# define UTIME_OMIT ((1l << 30) - 2l)
#endif
45 changes: 45 additions & 0 deletions sysdeps/unix/sysv/linux/futimens.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/* Change access and modification times of open file. Linux version.
Copyright (C) 2007 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */

#include <errno.h>
#include <fcntl.h>
#include <string.h>
#include <time.h>
#include <sysdep.h>


/* Change the access time of the file associated with FD to TSP[0] and
the modification time of FILE to TSP[1].
Starting with 2.6.22 the Linux kernel has the utimensat syscall which
can be used to implement futimens. */
int
futimens (int fd, const struct timespec tsp[2])
{
#ifdef __NR_utimensat
return INLINE_SYSCALL (utimensat, 4, fd, NULL, tsp, 0);
#else
__set_errno (ENOSYS);
return -1;
#endif
}
#ifndef __NR_utimensat
stub_warning (futimens)
# include <stub-tag.h>
#endif
Loading

0 comments on commit e169ea9

Please sign in to comment.