[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Compiling gawk on Tandem NSK/OSS
From: |
Aharon Robbins |
Subject: |
Re: Compiling gawk on Tandem NSK/OSS |
Date: |
Fri, 09 Feb 2007 13:03:05 +0200 |
Thanks for this note. As to snprintf, there's a replacement version
in missing_d. Can you tell why configure isn't finding it?
Thanks for the other patches, I'll work on getting them into CVS sometime
this week.
Thanks!
Arnold
In article <address@hidden> you write:
>-=-=-=-=-=-
>
>(Sorry for the delay, I finally got around to trying this...)
>
>Aharon Robbins wrote:
>> Greetings. Now that autoconf 2.61 will define _TANDEM_SOURCE for us,
>> I have incorporated a modified version of this patch that should let
>> gawk build out of the box on a Tandem system. The patches will show
>> up in the gawk CVS archive shortly.
>
>Well. That was fun. CVS is not buildable. NSK (at least my revision)
>does not have snprintf, and CVS builtin.c blithely assumes it. I *think*
>I would get a successful link if that was fixed, although I also had to
>apply the attached patch.
>
>> I didn't do anything about the library; if you can add a shell snippet
>> to configure.ac to do the trick and send me a patch relative to the current
>> CVS, that will help.
>
>I didn't check this part with CVS strictly OOTB, this trivial little
>change checks libzrldsrl for dlopen if it isn't in libdl. With this,
>configure sets LIBS correctly. A cursory check (try the link by hand -
>which fails, see above - without -lzrldsrl) complains about dlopen,
>dlerr, and dlsym as well as snprintf, so it seems it is still needed.
>
>==== BEGIN patch
>Index: configure.ac
>===================================================================
>RCS file: /sources/gawk/gawk-stable/configure.ac,v
>retrieving revision 1.6
>diff -u -r1.6 configure.ac
>--- configure.ac 2 Feb 2007 08:47:18 -0000 1.6
>+++ configure.ac 8 Feb 2007 20:35:41 -0000
>@@ -282,7 +282,8 @@
>
> # Check this separately. Some systems have dlopen
> # in libc. Notably freebsd and cygwin.
>- AC_CHECK_LIB(dl, dlopen)
>+ # HP-NSK has it in zrldsrl
>+ AC_SEARCH_LIBS(dlopen, dl zrldsrl)
> ])
>
> dnl check for how to use getpgrp
>==== END patch
>
>--
>Matthew
>"Two IIRC's must make a right" -- Larry Hall (paraphrased)
>
>-=-=-=-=-=-
>
>Index: regex_internal.h
>===================================================================
>RCS file: /sources/gawk/gawk-stable/regex_internal.h,v
>retrieving revision 1.3
>diff -u -r1.3 regex_internal.h
>--- regex_internal.h 14 Jan 2007 20:41:02 -0000 1.3
>+++ regex_internal.h 8 Feb 2007 21:53:00 -0000
>@@ -437,10 +437,9 @@
> #define re_string_skip_bytes(pstr,idx) ((pstr)->cur_idx += (idx))
> #define re_string_set_index(pstr,idx) ((pstr)->cur_idx = (idx))
>
>-#include <alloca.h>
>-
> #ifndef _LIBC
> # if HAVE_ALLOCA
>+# include <alloca.h>
> /* The OS usually guarantees only one guard page at the bottom of the stack,
> and a page size can be as small as 4096 bytes. So we cannot safely
> allocate anything larger than 4096 bytes. Also care for the possibility
>Index: regexec.c
>===================================================================
>RCS file: /sources/gawk/gawk-stable/regexec.c,v
>retrieving revision 1.5
>diff -u -r1.5 regexec.c
>--- regexec.c 2 Feb 2007 08:47:18 -0000 1.5
>+++ regexec.c 8 Feb 2007 21:53:02 -0000
>@@ -1411,9 +1411,11 @@
> cur_node = dfa->init_node;
> re_node_set_init_empty (&eps_via_nodes);
>
>+#ifdef HAVE_ALLOCA
> if (__libc_use_alloca (nmatch * sizeof (regmatch_t)))
> prev_idx_match = (regmatch_t *) alloca (nmatch * sizeof (regmatch_t));
> else
>+#endif
> {
> prev_idx_match = re_malloc (regmatch_t, nmatch);
> if (prev_idx_match == NULL)
>@@ -2892,7 +2894,7 @@
> sizeof (re_dfastate_t *) * (path->alloc - old_alloc));
> }
>
>- str_idx = path->next_idx ?: top_str;
>+ str_idx = path->next_idx ? path->next_idx : top_str;
>
> /* Temporary modify MCTX. */
> backup_state_log = mctx->state_log;
>@@ -3313,9 +3315,11 @@
> from `state'. `dests_node[i]' represents the nodes which i-th
> destination state contains, and `dests_ch[i]' represents the
> characters which i-th destination state accepts. */
>+#ifdef HAVE_ALLOCA
> if (__libc_use_alloca (sizeof (struct dests_alloc)))
> dests_alloc = (struct dests_alloc *) alloca (sizeof (struct dests_alloc));
> else
>+#endif
> {
> dests_alloc = re_malloc (struct dests_alloc, 1);
> if (BE (dests_alloc == NULL, 0))
>
>-=-=-=-=-=-
--
Aharon (Arnold) Robbins --- Pioneer Consulting Ltd. arnold AT skeeve DOT com
P.O. Box 354 Home Phone: +972 8 979-0381 Fax: +1 206 350 8765
Nof Ayalon Cell Phone: +972 50 729-7545
D.N. Shimshon 99785 ISRAEL