Project

General

Profile

Actions

Bug #2108

closed

getcontext() is missing on DragonFly x86_64

Added by alexh over 13 years ago. Updated almost 13 years ago.

Status:
Closed
Priority:
High
Assignee:
-
Category:
-
Target version:
-
Start date:
Due date:
% Done:

0%

Estimated time:

Description

I'm seeing this when trying to build pkgsrc/net/powerdns-recursor.


Related issues 1 (0 open1 closed)

Blocks Bug #2286: 3.0 release catchall ticketClosedjustin01/22/2012

Actions
Actions #1

Updated by pavalos about 13 years ago

So a little history:

-On the initial import of amd64/x86_64, the functions existed.
-In July 2006 they were removed in 635872e06f82693646a8d979c423433fa839a656
because i386 didn't have them and they are marked obsolete.
-Then in January 2007, they were added for i386 in
e274265043a09fe420ae2182ba74ee43fcfbcbd5.

So that's why they're there for i386 and not x86_64. The question is, do we
want them or not? They are completely removed from IEEE Std 1003.1-2008, but
there's still 3rd-party software that's using those functions. My vote is to
keep them and make them available to x86_64.

Actions #2

Updated by swildner about 13 years ago

The original amd64 getcontext() we had in libc assumed it was a syscall.

The i386 version is libc only. So just bringing back the amd64 one we had won't
work.

Someone will have to write a x86_64 libc only getcontext.S.

Actions #4

Updated by dragonflybsd1 almost 13 years ago

We need to bump this up in priority. On x86_64, every ruby package using ruby19-base is failing due to missing getcontext and makecontext on pkgsrc-current.

Actions #5

Updated by dragonflybsd1 almost 13 years ago

  • Priority changed from Normal to High

While researching why chat/gale failed, I discovered Boehm GC uses getcontext. So anything using this garbage collector will fail on X86_64.

Actions #6

Updated by profmakx almost 13 years ago

I dug up my seemingly working implementation of getcontext for x86_64 last weekend. The email to submit@ seems to have been lost. Anyway, the patch is available at

http://leaf.dragonflybsd.org/~profmakx/getcontext.patch

or in my git repository a3cb33319377734976008e240fded1e69ea07272,

I tested it with w3m, which uses boehm-gc, but had some issues with vkernels that stopped me from testing the other programs mentioned here. Heres a patch, feedback is appreciated.

Actions #7

Updated by profmakx almost 13 years ago

new commit in my git repository ref 1e29c3ebaaf978d191d581087167cd268268c106

Actions #8

Updated by marino almost 13 years ago

  • Assignee deleted (0)

Hmm, is this ready for testing?
I didn't see these update messages.
A new bulkbuild came in. The Ruby193 failure is worth 416 broken packages by itself.

This should be in Release 3.0 if it's good.

Actions #9

Updated by profmakx almost 13 years ago

I have a patch in my git repository that adds getcontext, setcontext, makecontext and swapcontext. However, testing this with puffs still segfaults the machine so there are issues. I welcome any testing/feedback though.

Actions #10

Updated by profmakx almost 13 years ago

commit 5f643fb7f2f5b3020964cfd507b9e8120c19535c in git://leaf.dragonflybsd.org/~profmakx/dragonfly.git now contains a patch that adds the functions in the context-family. I tested puffs, w3m and gale (compiling and running) and up to now i did not have any problems.

Would people please pull this patch and test a bit more intensively than I have time for at the moment?

Actions #11

Updated by swildner almost 13 years ago

  • Status changed from New to In Progress

I've committed Markus' implementation. Thanks!

Let's do some testing and if all looks good I'll MFC to 3.0.

Actions #12

Updated by swildner almost 13 years ago

  • Status changed from In Progress to Closed

Markus' work was pushed as 1b773b6ea04f3ba154036fa224a73207b22f8182 (master) and 98b8c7e1954b75b6607ab6f87a29ef5538a5fd37 (release).

Actions

Also available in: Atom PDF