summaryrefslogtreecommitdiff
path: root/libiberty
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2009-07-31 06:16:50 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2009-07-31 06:16:50 +0000
commit80840a5fd2b47202cc9d2266cf9a6b1f5c2e6ce2 (patch)
tree8e564e5ac627ae476fa0e8d322261e6313f70b07 /libiberty
parent6c3f1ba6c0116a23ada0a56e7ef8b55e4eeaffa0 (diff)
downloadgcc-80840a5fd2b47202cc9d2266cf9a6b1f5c2e6ce2.tar.gz
2009-07-31 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk rev 150307 added manually libstdc++-v3/include/std/chrono from trunk. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@150308 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libiberty')
-rw-r--r--libiberty/ChangeLog16
-rw-r--r--libiberty/Makefile.in10
-rw-r--r--libiberty/make-temp-file.c7
-rw-r--r--libiberty/pex-unix.c43
4 files changed, 68 insertions, 8 deletions
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index 6033935edc3..b2f41208bf8 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,19 @@
+2009-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * Makefile.in (AUTOCONF, configure_deps): New variables.
+ ($(srcdir)/configure): New rule, active only in maintainer mode.
+
+2009-07-29 Douglas B Rupp <rupp@gnat.com>
+
+ * make-temp-file.c (choose_tmpdir): Try standard temp logical on VMS.
+
+2009-07-27 Douglas B Rupp <rupp@gnat.com>
+
+ * pex-unix.c (vfork): Remove VMS specific definition (get from header
+ file instead).
+ (to_ptr32): New function.
+ (pex_unix_exec_child): Use it.
+
2009-07-24 Ian Lance Taylor <iant@google.com>
PR bootstrap/40854
diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
index 20a7210a1a1..e8f4f4d679a 100644
--- a/libiberty/Makefile.in
+++ b/libiberty/Makefile.in
@@ -459,6 +459,16 @@ stamp-h: $(srcdir)/config.in config.status Makefile
config.status: $(srcdir)/configure
$(SHELL) ./config.status --recheck
+AUTOCONF = autoconf
+configure_deps = $(srcdir)/aclocal.m4 \
+ $(srcdir)/../config/acx.m4 \
+ $(srcdir)/../config/no-executables.m4 \
+ $(srcdir)/../config/override.m4 \
+ $(srcdir)/../config/warnings.m4 \
+
+$(srcdir)/configure: @MAINT@ $(srcdir)/configure.ac $(configure_deps)
+ cd $(srcdir) && $(AUTOCONF)
+
# Depending on config.h makes sure that config.status has been re-run
# if needed. This prevents problems with parallel builds, in case
# subdirectories need to run config.status also.
diff --git a/libiberty/make-temp-file.c b/libiberty/make-temp-file.c
index eadcf850213..13e19256534 100644
--- a/libiberty/make-temp-file.c
+++ b/libiberty/make-temp-file.c
@@ -1,5 +1,5 @@
/* Utility to pick a temporary filename prefix.
- Copyright (C) 1996, 1997, 1998, 2001 Free Software Foundation, Inc.
+ Copyright (C) 1996, 1997, 1998, 2001, 2009 Free Software Foundation, Inc.
This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or
@@ -111,9 +111,14 @@ choose_tmpdir (void)
char *tmpdir;
unsigned int len;
+#ifdef VMS
+ /* Try VMS standard temp logical. */
+ base = try_dir ("/sys$scratch", base);
+#else
base = try_dir (getenv ("TMPDIR"), base);
base = try_dir (getenv ("TMP"), base);
base = try_dir (getenv ("TEMP"), base);
+#endif
#ifdef P_tmpdir
base = try_dir (P_tmpdir, base);
diff --git a/libiberty/pex-unix.c b/libiberty/pex-unix.c
index 366e96ef8d2..baf2bb4995b 100644
--- a/libiberty/pex-unix.c
+++ b/libiberty/pex-unix.c
@@ -1,7 +1,7 @@
/* Utilities to execute a program in a subprocess (possibly linked by pipes
with other subprocesses), and wait for it. Generic Unix version
(also used for UWIN and VMS).
- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
+ Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2009
Free Software Foundation, Inc.
This file is part of the libiberty library.
@@ -65,11 +65,40 @@ extern int errno;
#ifdef HAVE_VFORK_H
#include <vfork.h>
#endif
-#ifdef VMS
-#define vfork() (decc$$alloc_vfork_blocks() >= 0 ? \
- lib$get_current_invo_context(decc$$get_vfork_jmpbuf()) : -1)
-#endif /* VMS */
+#if defined(VMS) && defined (__LONG_POINTERS)
+#ifndef __CHAR_PTR32
+typedef char * __char_ptr32
+__attribute__ ((mode (SI)));
+#endif
+
+typedef __char_ptr32 *__char_ptr_char_ptr32
+__attribute__ ((mode (SI)));
+
+/* Return a 32 bit pointer to an array of 32 bit pointers
+ given a 64 bit pointer to an array of 64 bit pointers. */
+
+static __char_ptr_char_ptr32
+to_ptr32 (char **ptr64)
+{
+ int argc;
+ __char_ptr_char_ptr32 short_argv;
+
+ for (argc=0; ptr64[argc]; argc++);
+ /* Reallocate argv with 32 bit pointers. */
+ short_argv = (__char_ptr_char_ptr32) decc$malloc
+ (sizeof (__char_ptr32) * (argc + 1));
+
+ for (argc=0; ptr64[argc]; argc++)
+ short_argv[argc] = (__char_ptr32) decc$strdup (ptr64[argc]);
+
+ short_argv[argc] = (__char_ptr32) 0;
+ return short_argv;
+
+}
+#else
+#define to_ptr32(argv) argv
+#endif
/* File mode to use for private and world-readable files. */
@@ -425,12 +454,12 @@ pex_unix_exec_child (struct pex_obj *obj, int flags, const char *executable,
if ((flags & PEX_SEARCH) != 0)
{
- execvp (executable, argv);
+ execvp (executable, to_ptr32 (argv));
pex_child_error (obj, executable, "execvp", errno);
}
else
{
- execv (executable, argv);
+ execv (executable, to_ptr32 (argv));
pex_child_error (obj, executable, "execv", errno);
}