diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-07-31 06:16:50 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2009-07-31 06:16:50 +0000 |
commit | 80840a5fd2b47202cc9d2266cf9a6b1f5c2e6ce2 (patch) | |
tree | 8e564e5ac627ae476fa0e8d322261e6313f70b07 /libiberty | |
parent | 6c3f1ba6c0116a23ada0a56e7ef8b55e4eeaffa0 (diff) | |
download | gcc-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/ChangeLog | 16 | ||||
-rw-r--r-- | libiberty/Makefile.in | 10 | ||||
-rw-r--r-- | libiberty/make-temp-file.c | 7 | ||||
-rw-r--r-- | libiberty/pex-unix.c | 43 |
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); } |