* configure.ac: Check for readv function also.
* fileread.cc (readv): Define if not HAVE_READV. * fileread.h (File_read:: max_readv_entries): Set to 1 if readv does not exist. * config.in: Regenerate. * configure: Regenerate.
This commit is contained in:
parent
c0a6286595
commit
d9a893b837
|
@ -1,3 +1,13 @@
|
||||||
|
2009-10-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
|
||||||
|
Ian Lance Taylor <iant@google.com>
|
||||||
|
|
||||||
|
* configure.ac: Check for readv function also.
|
||||||
|
* fileread.cc (readv): Define if not HAVE_READV.
|
||||||
|
* fileread.h (File_read:: max_readv_entries): Set to 1 if readv
|
||||||
|
does not exist.
|
||||||
|
* config.in: Regenerate.
|
||||||
|
* configure: Regenerate.
|
||||||
|
|
||||||
2009-10-09 Doug Kwan <dougkwan@google.com>
|
2009-10-09 Doug Kwan <dougkwan@google.com>
|
||||||
|
|
||||||
* layout.cc (Layout::make_output_section): Call target hook to make
|
* layout.cc (Layout::make_output_section): Call target hook to make
|
||||||
|
|
|
@ -99,6 +99,9 @@
|
||||||
/* Define to 1 if you have the `pread' function. */
|
/* Define to 1 if you have the `pread' function. */
|
||||||
#undef HAVE_PREAD
|
#undef HAVE_PREAD
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `readv' function. */
|
||||||
|
#undef HAVE_READV
|
||||||
|
|
||||||
/* Define to 1 if you have the <stdint.h> header file. */
|
/* Define to 1 if you have the <stdint.h> header file. */
|
||||||
#undef HAVE_STDINT_H
|
#undef HAVE_STDINT_H
|
||||||
|
|
||||||
|
|
|
@ -6701,7 +6701,7 @@ fi
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|
||||||
for ac_func in mallinfo posix_fallocate
|
for ac_func in mallinfo posix_fallocate readv
|
||||||
do :
|
do :
|
||||||
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
|
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
|
||||||
ac_fn_cxx_check_func "$LINENO" "$ac_func" "$as_ac_var"
|
ac_fn_cxx_check_func "$LINENO" "$ac_func" "$as_ac_var"
|
||||||
|
|
|
@ -338,7 +338,7 @@ AC_LANG_PUSH(C++)
|
||||||
AC_CHECK_HEADERS(tr1/unordered_set tr1/unordered_map)
|
AC_CHECK_HEADERS(tr1/unordered_set tr1/unordered_map)
|
||||||
AC_CHECK_HEADERS(ext/hash_map ext/hash_set)
|
AC_CHECK_HEADERS(ext/hash_map ext/hash_set)
|
||||||
AC_CHECK_HEADERS(byteswap.h)
|
AC_CHECK_HEADERS(byteswap.h)
|
||||||
AC_CHECK_FUNCS(mallinfo posix_fallocate)
|
AC_CHECK_FUNCS(mallinfo posix_fallocate readv)
|
||||||
AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf, snprintf, vsnprintf, strverscmp, strndup, memmem])
|
AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf, snprintf, vsnprintf, strverscmp, strndup, memmem])
|
||||||
|
|
||||||
# Use of ::std::tr1::unordered_map::rehash causes undefined symbols
|
# Use of ::std::tr1::unordered_map::rehash causes undefined symbols
|
||||||
|
|
|
@ -40,6 +40,15 @@
|
||||||
#include "descriptors.h"
|
#include "descriptors.h"
|
||||||
#include "fileread.h"
|
#include "fileread.h"
|
||||||
|
|
||||||
|
#ifndef HAVE_READV
|
||||||
|
struct iovec { void* iov_base; size_t iov_len };
|
||||||
|
ssize_t
|
||||||
|
readv(int, const iovec*, int)
|
||||||
|
{
|
||||||
|
gold_unreachable();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace gold
|
namespace gold
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
|
@ -370,7 +370,13 @@ class File_read
|
||||||
{ return (file_size + (page_size - 1)) & ~ (page_size - 1); }
|
{ return (file_size + (page_size - 1)) & ~ (page_size - 1); }
|
||||||
|
|
||||||
// The maximum number of entries we will pass to ::readv.
|
// The maximum number of entries we will pass to ::readv.
|
||||||
|
#ifdef HAVE_READV
|
||||||
static const size_t max_readv_entries = 128;
|
static const size_t max_readv_entries = 128;
|
||||||
|
#else
|
||||||
|
// On targets that don't have readv set the max to 1 so readv is not
|
||||||
|
// used.
|
||||||
|
static const size_t max_readv_entries = 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
// Use readv to read data.
|
// Use readv to read data.
|
||||||
void
|
void
|
||||||
|
|
Loading…
Reference in New Issue