Restore build on x86_64-w64-mingw32.
gold/ PR gold/23594 * configure.ac: Add checks for link, mkdtemp. * configure: Regenerate. * config.in: Regenerate. * plugin.cc (Plugin_recorder::init): Fall back to mktemp if mkdtemp is not available. (link_or_copy_file): Fall back to copy if link() is not available.
This commit is contained in:
parent
314a80c41d
commit
f4238194a2
5 changed files with 34 additions and 4 deletions
|
@ -1,3 +1,13 @@
|
|||
2018-12-03 Alexey Neyman <stilor@att.net>
|
||||
|
||||
PR gold/23594
|
||||
* configure.ac: Add checks for link, mkdtemp.
|
||||
* configure: Regenerate.
|
||||
* config.in: Regenerate.
|
||||
* plugin.cc (Plugin_recorder::init): Fall back to mktemp
|
||||
if mkdtemp is not available.
|
||||
(link_or_copy_file): Fall back to copy if link() is not available.
|
||||
|
||||
2018-12-02 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
PR binutils/23919
|
||||
|
|
|
@ -103,6 +103,9 @@
|
|||
/* Define if your <locale.h> file defines LC_MESSAGES. */
|
||||
#undef HAVE_LC_MESSAGES
|
||||
|
||||
/* Define to 1 if you have the `link' function. */
|
||||
#undef HAVE_LINK
|
||||
|
||||
/* Define to 1 if you have the <locale.h> header file. */
|
||||
#undef HAVE_LOCALE_H
|
||||
|
||||
|
@ -112,6 +115,9 @@
|
|||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#undef HAVE_MEMORY_H
|
||||
|
||||
/* Define to 1 if you have the `mkdtemp' function. */
|
||||
#undef HAVE_MKDTEMP
|
||||
|
||||
/* Define to 1 if you have the `mmap' function. */
|
||||
#undef HAVE_MMAP
|
||||
|
||||
|
|
4
gold/configure
vendored
4
gold/configure
vendored
|
@ -7977,7 +7977,7 @@ fi
|
|||
|
||||
done
|
||||
|
||||
for ac_func in chsize mmap
|
||||
for ac_func in chsize mmap link
|
||||
do :
|
||||
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
|
||||
ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
|
||||
|
@ -9866,7 +9866,7 @@ case "$ac_cv_search_dlopen" in
|
|||
esac
|
||||
|
||||
|
||||
for ac_func in mallinfo posix_fallocate fallocate readv sysconf times
|
||||
for ac_func in mallinfo posix_fallocate fallocate readv sysconf times mkdtemp
|
||||
do :
|
||||
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
|
||||
ac_fn_cxx_check_func "$LINENO" "$ac_func" "$as_ac_var"
|
||||
|
|
|
@ -529,7 +529,7 @@ LFS_CFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
|
|||
AC_SUBST(LFS_CFLAGS)
|
||||
|
||||
AC_CHECK_HEADERS(sys/mman.h)
|
||||
AC_CHECK_FUNCS(chsize mmap)
|
||||
AC_CHECK_FUNCS(chsize mmap link)
|
||||
AC_REPLACE_FUNCS(pread ftruncate ffsll)
|
||||
|
||||
AC_CACHE_CHECK([mremap with MREMAP_MAYMOVE], [gold_cv_lib_mremap_maymove],
|
||||
|
@ -613,7 +613,7 @@ case "$ac_cv_search_dlopen" in
|
|||
esac
|
||||
AC_SUBST(DLOPEN_LIBS)
|
||||
|
||||
AC_CHECK_FUNCS(mallinfo posix_fallocate fallocate readv sysconf times)
|
||||
AC_CHECK_FUNCS(mallinfo posix_fallocate fallocate readv sysconf times mkdtemp)
|
||||
AC_CHECK_DECLS([basename, ffs, asprintf, vasprintf, snprintf, vsnprintf, strverscmp, strndup, memmem])
|
||||
|
||||
# Use of ::std::tr1::unordered_map::rehash causes undefined symbols
|
||||
|
|
|
@ -508,8 +508,20 @@ Plugin_recorder::init()
|
|||
// Create a temporary directory where we can stash the log and
|
||||
// copies of replacement files.
|
||||
char dir_template[] = "gold-recording-XXXXXX";
|
||||
#ifdef HAVE_MKDTEMP
|
||||
if (mkdtemp(dir_template) == NULL)
|
||||
return false;
|
||||
#else
|
||||
if (mktemp(dir_template) == NULL)
|
||||
return false;
|
||||
#if defined (_WIN32) && !defined (__CYGWIN32__)
|
||||
if (mkdir(dir_template) != 0)
|
||||
return false;
|
||||
#else
|
||||
if (mkdir(dir_template, 0700) != 0)
|
||||
return false;
|
||||
#endif
|
||||
#endif
|
||||
|
||||
size_t len = strlen(dir_template) + 1;
|
||||
char* tempdir = new char[len];
|
||||
|
@ -562,8 +574,10 @@ link_or_copy_file(const char* inname, const char* outname)
|
|||
{
|
||||
static char buf[4096];
|
||||
|
||||
#ifdef HAVE_LINK
|
||||
if (::link(inname, outname) == 0)
|
||||
return true;
|
||||
#endif
|
||||
|
||||
int in = ::open(inname, O_RDONLY);
|
||||
if (in < 0)
|
||||
|
|
Loading…
Add table
Reference in a new issue