Re: Pike on OpenBSD
Henrik Grubbström <[email protected]>
| Newsgroups | gmane.comp.lang.pike.user |
|---|---|
| Organization | Roxen Internet Software AB |
| Message-ID | <[email protected]> |
On Fri, 30 Dec 2016, Bernd Schoeller wrote:
> Hi -
Hi Bernd and happy new year!
> I would love to run Roxen on my OpenBSD server, and the first step is to get
> a current version of Pike to work on OpenBSD.
[...]
> The first hurdle is compilation of efuns.c:
>
> Compiling modules/_Stdio/efuns.c
> /home/schoelle/Code/Pike-v8.0.370/src/modules/_Stdio/efuns.c: In function
> 'f_get_dir':
> /home/schoelle/Code/Pike-v8.0.370/src/modules/_Stdio/efuns.c:1402: error:
> 'name_max' undeclared (first use in this function)
>
> The corresponding code is:
>
> void f_get_dir(INT32 args)
> {
> [...]
> #ifdef HAVE_READDIR_R
> ptrdiff_t name_max = -1;
> #endif
>
> [...]
>
> low_get_dir(dir, name_max);
> stack_pop_n_elems_keep_top(args);
> }
> #endif /* __NT__ */
>
> So name_max is defined conditionally, but it is used unconditionally.
>
> Removing the #ifdef, compilation continues, but then I get the next error:
Correct fix. Seems I fixed it in Pike 8.1 ~ one and a half years ago,
but forgot to backport it to Pike 8.0.
Fixed.
> Compiling post_modules/GL/top.c
> /home/schoelle/Code/Pike-v8.0.370/build/openbsd-6.0-amd64/tpike
> -DNOT_INSTALLED -DPRECOMPILED_SEARCH_MORE
> -m/home/schoelle/Code/Pike-v8.0.370/build/openbsd-6.0-amd64/master.pike
> /home/schoelle/Code/Pike-v8.0.370/src/post_modules/GL/gen.pike
> /home/schoelle/Code/Pike-v8.0.370/src/post_modules/GL/auto.c.in > auto.c.tmp
> tpike(85013) in free(): error: bogus pointer (double free?) 0xebdd6208440
> Abort trap (core dumped)
[...]
> Anybody any hints where I should continue to investigate?
Hmm... Why is it using tpike in post-modules? You ought to have a full
pike binary at that time. I suspect that you've got several failures
some of which are with the full pike binary.
Anyway, the problematic pointer looks like it could have been valid at
some point in time.
It looks like the crash is during initialization of the master object.
Please try running
./pike -t2
and provide the last ~20 lines of the trace.
Thanks,
--
Henrik Grubbström [email protected]
Roxen Internet Software AB