From: Thiemo Seufer <ica2_ts@csv.ica.uni-stuttgart.de>
To: binutils@sources.redhat.com
Cc: ica2_ts@csv.ica.uni-stuttgart.de
Subject: Re: [PATCH] Include alloca.h for bfd
Date: Tue, 21 Aug 2001 14:46:00 -0000 [thread overview]
Message-ID: <20010821234604.J30301@rembrandt.csv.ica.uni-stuttgart.de> (raw)
In-Reply-To: <sihev1180q.fsf@daffy.airs.com>
Ian Lance Taylor wrote:
> Thiemo Seufer <ica2_ts@csv.ica.uni-stuttgart.de> writes:
>
> > this checks for inclusion of alloca.h, which is required on IRIX6.5
> > to compile e.g. linker.c.
>
> This patch is incorrect. Any declaration of alloca or inclusions of
> alloca.h must be done as in gas/as.h.
Uh, that's a really ugly piece of code.
> In the past I did not permit alloca to be used in BFD, because on
> systems which do not have alloca the version in libiberty would call
> xmalloc, which might cause the program to crash when it ran out of
> memory. I believe that BFD should never crash because it runs out of
> memory; instead, it should return the appropriate error to the caller.
> (That's why I wrote the objalloc interface when obstacks were changed
> to no longer support a failure to allocate memory.) However, I do not
> know what the current thinking is on alloca in BFD.
Well, alloca() is called in BFD:
bfd/elfxx-ia64.c: char *once_name = alloca (len2 + strlen (sname) - len + 1);
bfd/elfxx-ia64.c: addr_name = alloca (len);
bfd/som.c: unsigned char *tmp_space = alloca (tmp_space_size);
bfd/som.c: tmp_space = alloca (tmp_space_size);
bfd/som.c: unsigned char *tmp_space = alloca (tmp_space_size);
bfd/som.c: tmp_space = alloca (tmp_space_size);
bfd/som.c: tmp_space = alloca (tmp_space_size);
bfd/elf64-hppa.c: new_name = alloca (strlen (h->root.root.string) + 2);
bfd/elf64-hppa.c: new_name = alloca (strlen (h->root.root.string) + 2);
bfd/vms-hdr.c: fname = (char *) alloca (strlen (fptr) + 1);
bfd/linker.c: char *buf = alloca (strlen (h->root.string) + 10);
The last one causes the build with native tools on IRIX6.5 to fail.
This patch lets it compile.
Thiemo
2001-08-21 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
/bfd/ChangeLog
* sysdep.h (HAVE_ALLOCA): Check for inclusion of alloca.h, needed
on irix6.
diff -BurpNX /bigdisk/src/binutils-exclude src-orig/bfd/sysdep.h src/bfd/sysdep.h
--- src-orig/bfd/sysdep.h Tue Aug 21 19:13:51 2001
+++ src/bfd/sysdep.h Tue Aug 21 22:54:13 2001
@@ -26,6 +26,35 @@ Foundation, Inc., 59 Temple Place - Suit
#include "config.h"
+/* This is the code recommended in the autoconf documentation, almost
+ verbatim. If it doesn't work for you, let me know, and notify
+ djm@gnu.ai.mit.edu as well. */
+/* Added void* version for STDC case. This is to be compatible with
+ the declaration in bison.simple, used for m68k operand parsing.
+ --KR 1995.08.08 */
+/* Force void* decl for hpux. This is what Bison uses. --KR 1995.08.16 */
+
+#ifndef __GNUC__
+# if HAVE_ALLOCA_H
+# include <alloca.h>
+# else
+# ifdef _AIX
+/* Indented so that pre-ansi C compilers will ignore it, rather than
+ choke on it. Some versions of AIX require this to be the first
+ thing in the file. */
+ #pragma alloca
+# else
+# ifndef alloca /* predefined by HP cc +Olibcalls */
+# if !defined (__STDC__) && !defined (__hpux)
+extern char *alloca ();
+# else
+extern void *alloca ();
+# endif /* __STDC__, __hpux */
+# endif /* alloca */
+# endif /* _AIX */
+# endif /* HAVE_ALLOCA_H */
+#endif /* __GNUC__ */
+
#ifdef HAVE_STDDEF_H
#include <stddef.h>
#endif
next prev parent reply other threads:[~2001-08-21 14:46 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-08-21 12:09 Thiemo Seufer
2001-08-21 13:20 ` Ian Lance Taylor
2001-08-21 14:46 ` Thiemo Seufer [this message]
2001-08-21 14:56 ` Ian Lance Taylor
2001-08-23 7:42 ` Nick Clifton
2001-08-23 8:48 ` Thiemo Seufer
2001-08-23 9:02 ` Jakub Jelinek
2001-08-23 9:15 ` Thiemo Seufer
2001-08-23 10:13 ` Andrew Cagney
2001-08-23 10:29 ` Ian Lance Taylor
2001-08-23 11:42 ` Andrew Cagney
2001-08-23 11:49 ` Jakub Jelinek
2001-08-23 10:16 ` Nick Clifton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20010821234604.J30301@rembrandt.csv.ica.uni-stuttgart.de \
--to=ica2_ts@csv.ica.uni-stuttgart.de \
--cc=binutils@sources.redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).