On Sat, Nov 24, 2018 at 12:24:59PM +0000, Stuart Henderson wrote: > On 2018/11/24 13:20, Otto Moerbeek wrote: > > On Sat, Nov 24, 2018 at 12:01:48PM +0000, Stuart Henderson wrote: > > > > > On 2018/11/24 09:45, Landry Breuil wrote: > > > > On Sat, Nov 24, 2018 at 07:54:36AM +0100, Otto Moerbeek wrote: > > > > > On Wed, Nov 21, 2018 at 01:19:27PM +0100, Otto Moerbeek wrote: > > > > > > > > > > > Hi, > > > > > > > > > > > > I am playing with boost contexts which is configured out by the > > > > > > current port. > > > > > > I am able to make execution_context and fcontext work on amd64. The > > > > > > first > > > > > > using a simple test program and the second using a non-trival > > > > > > program. > > > > > > > > > > > > The only actual change in boost itself is to use a mmap(... > > > > > > MMAP_STACK ...) for stack allocation. So I like to enable the > > > > > > disabled parts. They are not extensivly tested and some other parts > > > > > > might need a patch too (there are several classes creating stacks). > > > > > > > > > > > > At the moment I just like to know if I am taking the right approach > > > > > > port-wise. So, any comments or advise? > > > > > > > > > > Total silence.... remember I'm a total ports newbie, I really could > > > > > use some guidance here. Is this the right approach for a port having > > > > > arch specific features and plist? > > > > > > > > That is the right approach in general, but for a leaf port. Here, lots > > > > of other ports depend on boost, and stuff might pick up those new libs > > > > on amd64 (or updates/new ports start relying on them), and then the same > > > > stuff start breaking in subtle ways on other archs (few ppl cares > > > > about). > > > > > > Yes exactly this... The approach would need to be : > > > > > > build dependent ports (130-odd, many large/slow) > > > > > > run "check-lib-depends" on the produced packages, see if the new libraries > > > are picked up > > > > > > if so, add arch-dependent bits to add the relevant libraries to WANTLIB > > > > > > (and as they're not extensively tested, alert people to the ports which > > > have picked this up and request further testing of these) > > > > > > Additionally we need to watch imports/updates of ports using boost in the > > > future to see if they start using these libraries otherwise builds will > > > break (it's not so bad if it's amd64-only, but if all the "fast" arches > > > gain support, we typically don't discover breakage in this form until > > > it's time for release builds when it's too late to fix). > > > > > > So the question is "is it worth it". Could be - this is a path to running > > > some software (pdns-recursor comes to mind) which otherwise won't run on > > > OpenBSD because we never got support for the ucontext.h functions .. > > > > > > > pdns-recursor is the cause I'm looking into this. ucontext is not only > > deprecated but actually removed by posix, I do not want to go that > > road. So boost's fcontext remains and it is working properly on amd64 > > at least. > > > > I could maybe go a more conservative approach and only enable boosts's > > context lib. That's all I need, and the scope of potential breakage > > will be more limited. > > > > But first next step is building and basic tests on i386 and sparc64. > > If you get i386 working, once we're done with LLD test builds on > i386, I can help with bulk builds and WANTLIB checks there. >
Hmm, i386 builds but my trivial test program core dumps in jump_fcontext(). It looks like the stack context created by make_fcontext() isn't right on OpenBSD (or handled incorrectly by jump_fcontext()). Pondering now wether to spend time on this. Both functions are written in assemby and I never learnt i386 assembly. -Otto