mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-10 09:59:06 +08:00
* configure, config.in: Rebuild.
* configure.in: Check for fileno. * bfdio.c (close_on_exec): New function. (real_fopen): Use it. (FD_CLOEXEC): New define.
This commit is contained in:
@ -1,3 +1,11 @@
|
|||||||
|
2008-11-06 Tom Tromey <tromey@redhat.com>
|
||||||
|
|
||||||
|
* configure, config.in: Rebuild.
|
||||||
|
* configure.in: Check for fileno.
|
||||||
|
* bfdio.c (close_on_exec): New function.
|
||||||
|
(real_fopen): Use it.
|
||||||
|
(FD_CLOEXEC): New define.
|
||||||
|
|
||||||
2008-11-06 Tristan Gingold <gingold@adacore.com>
|
2008-11-06 Tristan Gingold <gingold@adacore.com>
|
||||||
|
|
||||||
* mach-o.h (BFD_MACH_O_NO_SECT): Add; reorders the macros.
|
* mach-o.h (BFD_MACH_O_NO_SECT): Add; reorders the macros.
|
||||||
|
25
bfd/bfdio.c
25
bfd/bfdio.c
@ -38,6 +38,10 @@
|
|||||||
#define S_IXOTH 0001 /* Execute by others. */
|
#define S_IXOTH 0001 /* Execute by others. */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef FD_CLOEXEC
|
||||||
|
#define FD_CLOEXEC 1
|
||||||
|
#endif
|
||||||
|
|
||||||
file_ptr
|
file_ptr
|
||||||
real_ftell (FILE *file)
|
real_ftell (FILE *file)
|
||||||
{
|
{
|
||||||
@ -62,13 +66,30 @@ real_fseek (FILE *file, file_ptr offset, int whence)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Mark FILE as close-on-exec. Return FILE. FILE may be NULL, in
|
||||||
|
which case nothing is done. */
|
||||||
|
static FILE *
|
||||||
|
close_on_exec (FILE *file)
|
||||||
|
{
|
||||||
|
#if defined (HAVE_FILENO) && defined (F_GETFD)
|
||||||
|
if (file)
|
||||||
|
{
|
||||||
|
int fd = fileno (file);
|
||||||
|
int old = fcntl (fd, F_GETFD, 0);
|
||||||
|
if (old >= 0)
|
||||||
|
fcntl (fd, F_SETFD, old | FD_CLOEXEC);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return file;
|
||||||
|
}
|
||||||
|
|
||||||
FILE *
|
FILE *
|
||||||
real_fopen (const char *filename, const char *modes)
|
real_fopen (const char *filename, const char *modes)
|
||||||
{
|
{
|
||||||
#if defined (HAVE_FOPEN64)
|
#if defined (HAVE_FOPEN64)
|
||||||
return fopen64 (filename, modes);
|
return close_on_exec (fopen64 (filename, modes));
|
||||||
#else
|
#else
|
||||||
return fopen (filename, modes);
|
return close_on_exec (fopen (filename, modes));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -78,6 +78,9 @@
|
|||||||
/* Define to 1 if you have the `fdopen' function. */
|
/* Define to 1 if you have the `fdopen' function. */
|
||||||
#undef HAVE_FDOPEN
|
#undef HAVE_FDOPEN
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `fileno' function. */
|
||||||
|
#undef HAVE_FILENO
|
||||||
|
|
||||||
/* Define to 1 if you have the `fopen64' function. */
|
/* Define to 1 if you have the `fopen64' function. */
|
||||||
#undef HAVE_FOPEN64
|
#undef HAVE_FOPEN64
|
||||||
|
|
||||||
|
3
bfd/configure
vendored
3
bfd/configure
vendored
@ -17553,7 +17553,8 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
for ac_func in fcntl getpagesize setitimer sysconf fdopen getuid getgid
|
|
||||||
|
for ac_func in fcntl getpagesize setitimer sysconf fdopen getuid getgid fileno
|
||||||
do
|
do
|
||||||
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
|
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
|
||||||
echo "$as_me:$LINENO: checking for $ac_func" >&5
|
echo "$as_me:$LINENO: checking for $ac_func" >&5
|
||||||
|
@ -179,7 +179,7 @@ GCC_HEADER_STDINT(bfd_stdint.h)
|
|||||||
AC_HEADER_TIME
|
AC_HEADER_TIME
|
||||||
AC_HEADER_DIRENT
|
AC_HEADER_DIRENT
|
||||||
ACX_HEADER_STRING
|
ACX_HEADER_STRING
|
||||||
AC_CHECK_FUNCS(fcntl getpagesize setitimer sysconf fdopen getuid getgid)
|
AC_CHECK_FUNCS(fcntl getpagesize setitimer sysconf fdopen getuid getgid fileno)
|
||||||
AC_CHECK_FUNCS(strtoull)
|
AC_CHECK_FUNCS(strtoull)
|
||||||
|
|
||||||
AC_CHECK_DECLS(basename)
|
AC_CHECK_DECLS(basename)
|
||||||
|
Reference in New Issue
Block a user