summaryrefslogtreecommitdiff
path: root/libiberty
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2009-05-26 06:46:23 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2009-05-26 06:46:23 +0000
commit096b7869bba988e875a65cb59d53f27ac3762f08 (patch)
tree98a5ab29c6fd8865f91450932609ba96a84611c1 /libiberty
parentc84903abd9f45fc17648294d062f71f782dc402a (diff)
downloadgcc-096b7869bba988e875a65cb59d53f27ac3762f08.tar.gz
2009-05-26 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk r147859 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@147861 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libiberty')
-rw-r--r--libiberty/ChangeLog21
-rw-r--r--libiberty/config.h-vms22
-rw-r--r--libiberty/cp-demangle.c8
-rw-r--r--libiberty/makefile.vms18
-rw-r--r--libiberty/pex-win32.c17
5 files changed, 56 insertions, 30 deletions
diff --git a/libiberty/ChangeLog b/libiberty/ChangeLog
index 13c7fd5dd1f..850979abb9a 100644
--- a/libiberty/ChangeLog
+++ b/libiberty/ChangeLog
@@ -1,3 +1,24 @@
+2009-05-25 Tristan Gingold <gingold@adacore.com>
+
+ * config.h-vms: Rewritten. Define configure macros.
+ Use DEC-C builtin alloca.
+
+ * makefile.vms (OBJS): Update list.
+ (OPT): New variable.
+ (CFLAGS): Update compilation flags.
+ (libiberty.olb): Do not depend on alloca-conf.h anymore.
+
+2009-05-19 Ian Lance Taylor <iant@google.com>
+ Ben Elliston <bje@au.ibm.com>
+
+ * cp-demangle.c (cplus_demangle_fill_ctor): Fix logic bug.
+ (cplus_demangle_fill_dtor): Likewise.
+
+2009-05-17 Julian Brown <julian@codesourcery.com>
+
+ * pex-win32.c (pex_win32_exec_child): Fix logic to avoid closing
+ standard handles (stdin, stdout, stderr) in parent.
+
2009-04-29 Julian Brown <julian@codesourcery.com>
* pex-win32.c (pex_win32_pipe): Add _O_NOINHERIT.
diff --git a/libiberty/config.h-vms b/libiberty/config.h-vms
index ccac6a2bcc7..d84453101e8 100644
--- a/libiberty/config.h-vms
+++ b/libiberty/config.h-vms
@@ -1,13 +1,11 @@
-#ifndef NEED_strerror
-#define NEED_strerror
-#endif
-#ifndef NEED_basename
-#define NEED_basename
-#endif
-#ifndef NEED_psignal
-#define NEED_psignal
-#endif
-#ifndef NEED_on_exit
-#define NEED_on_exit
-#endif
+/* This is -*- C -*- */
+#define HAVE_STDLIB_H 1
+#define HAVE_UNISTD_H 1
+#define HAVE_STRING_H 1
+#define HAVE_SYS_STAT_H 1
+#define HAVE_SYS_TIME_H 1
+/* Cheat: use vms builtin alloca. */
+#ifdef __DECC
+#define C_alloca(x) __ALLOCA(x)
+#endif
diff --git a/libiberty/cp-demangle.c b/libiberty/cp-demangle.c
index b02f9bbf97e..4f309ef992b 100644
--- a/libiberty/cp-demangle.c
+++ b/libiberty/cp-demangle.c
@@ -719,8 +719,8 @@ cplus_demangle_fill_ctor (struct demangle_component *p,
{
if (p == NULL
|| name == NULL
- || (kind < gnu_v3_complete_object_ctor
- && kind > gnu_v3_complete_object_allocating_ctor))
+ || (int) kind < gnu_v3_complete_object_ctor
+ || (int) kind > gnu_v3_complete_object_allocating_ctor)
return 0;
p->type = DEMANGLE_COMPONENT_CTOR;
p->u.s_ctor.kind = kind;
@@ -738,8 +738,8 @@ cplus_demangle_fill_dtor (struct demangle_component *p,
{
if (p == NULL
|| name == NULL
- || (kind < gnu_v3_deleting_dtor
- && kind > gnu_v3_base_object_dtor))
+ || (int) kind < gnu_v3_deleting_dtor
+ || (int) kind > gnu_v3_base_object_dtor)
return 0;
p->type = DEMANGLE_COMPONENT_DTOR;
p->u.s_dtor.kind = kind;
diff --git a/libiberty/makefile.vms b/libiberty/makefile.vms
index 6a7dd45718e..2f45f69a2ae 100644
--- a/libiberty/makefile.vms
+++ b/libiberty/makefile.vms
@@ -7,19 +7,25 @@
#
#
-OBJS=bcopy.obj,bcmp.obj,getopt.obj,obstack.obj,xexit.obj,xmalloc.obj,hex.obj,\
- getopt1.obj,cplus-dem.obj,strncasecmp.obj,strcasecmp.obj,strdup.obj,\
- concat.obj,getruntime.obj,getpagesize.obj,alloca.obj,xstrerror.obj,\
- xmemdup.obj,xstrdup.obj,xatexit.obj,choose-temp.obj,fnmatch.obj,objalloc.obj
+OBJS=getopt.obj,obstack.obj,xexit.obj,xmalloc.obj,hex.obj,\
+ getopt1.obj,cplus-dem.obj,cp-demangle.obj,cp-demint.obj,\
+ asprintf.obj vasprintf.obj,mkstemps.obj,\
+ concat.obj,getruntime.obj,getpagesize.obj,getpwd.obj,xstrerror.obj,\
+ xmemdup.obj,xstrdup.obj,xatexit.obj,choose-temp.obj,fnmatch.obj,\
+ objalloc.obj,safe-ctype.obj,hashtab.obj,lbasename.obj,argv.obj,\
+ lrealpath.obj,make-temp-file.obj,unlink-if-ordinary.obj
ifeq ($(CC),gcc)
CFLAGS=/include=([],[-.include])
else
# assume dec c
-CFLAGS=/noopt/debug/include=([],[-.include])/define=("const=")/warnings=disable=(missingreturn,implicitfunc)
+OPT=/noopt/debug/warnings=disable=(missingreturn)
+CFLAGS=$(OPT)/include=([],[-.include])/name=(as_is,shortened)\
+ /define=(HAVE_CONFIG_H=1)\
+ /prefix=(all,except=("getopt","optarg","optopt","optind","opterr"))
endif
-libiberty.olb: config.h alloca-conf.h $(OBJS)
+libiberty.olb: config.h $(OBJS)
purge
lib/create libiberty *.obj
diff --git a/libiberty/pex-win32.c b/libiberty/pex-win32.c
index 30ef4359200..91e0bc882ff 100644
--- a/libiberty/pex-win32.c
+++ b/libiberty/pex-win32.c
@@ -753,17 +753,20 @@ pex_win32_exec_child (struct pex_obj *obj ATTRIBUTE_UNUSED, int flags,
original descriptors. */
orig_in = in;
in = _dup (orig_in);
- _close (orig_in);
+ if (orig_in != STDIN_FILENO)
+ _close (orig_in);
orig_out = out;
out = _dup (orig_out);
- _close (orig_out);
+ if (orig_out != STDOUT_FILENO)
+ _close (orig_out);
if (separate_stderr)
{
orig_err = errdes;
errdes = _dup (orig_err);
- _close (orig_err);
+ if (orig_err != STDERR_FILENO)
+ _close (orig_err);
}
stdin_handle = INVALID_HANDLE_VALUE;
@@ -844,11 +847,9 @@ pex_win32_exec_child (struct pex_obj *obj ATTRIBUTE_UNUSED, int flags,
/* Close the standard input, standard output and standard error handles
in the parent. */
- if (in != STDIN_FILENO)
- _close (in);
- if (out != STDOUT_FILENO)
- _close (out);
- if (errdes != STDERR_FILENO)
+ _close (in);
+ _close (out);
+ if (separate_stderr)
_close (errdes);
return pid;