here are the tips given to me on #openzaurus to build gpe-minibroswer:
webcore : cvsdate 20050430 and two patches :
      http://www.kernelconcepts.de/~fuchs/oe/gdk-colorspace.diff
      http://www.kernelconcepts.de/~fuchs/oe/sto...e-loading.patch
(not specially related to open-bsd )
[div align=\"right\"][a href=\"index.php?act=findpost&pid=115314\"][{POST_SNAPBACK}][/a][/div]
Thanks pgas but the nature of this issue doesn't effect Linux since Linux implements an alternate non-posix extension to pthreads that the kjs source in JavaScriptCore utilises if __linux is defined so you wouldn't have the issue that I'm working on anyway.
Basically the call sequence is used to get the stack address of the thread, something which isn't in the posix specification and sounds just the sort of extension that OpenBSD wouldn't want since it is potentially open to misuse. I took a look at version of kdelibs that this version of kjs was derived from and there is a critical comment inside the source about 'changing this since it isn't portable'. - I guess I will trawl for kdelibs patches next... someone porting to QNX or something else may have a workaround.
here's the member function from kdelibs to show you...
299 void Collector::markCurrentThreadConservatively()
300 {
301     jmp_buf registers;
302     setjmp(registers);
303 
304 #if __APPLE__
305     pthread_t thread = pthread_self();
306     void *stackBase = pthread_get_stackaddr_np(thread);
307 #elif defined(_WIN32) || defined(_WIN64)
308     NT_TIB *pTib;
309 #ifdef __GNUC__
310     __asm__("movl  %%fs:0x18,%0"
311             : "=r" (pTib)
312     );
313 #else
314     __asm {
315         MOV EAX, FS:[18h]
316         MOV pTib, EAX
317     }
318 #endif
319     void *stackBase = (void *)pTib->StackBase;
320 #else
321     static void *stackBase = 0;
322     static pthread_t stackThread;
323     pthread_t thread = pthread_self();
324     if (stackBase == 0 || thread != stackThread) {
325         pthread_attr_t sattr;
326 #ifdef HAVE_PTHREAD_NP_H
327         // e.g. on FreeBSD 5.4, neundorf@kde.org
328         pthread_attr_get_np(thread, &sattr);
329 #else
330         // FIXME: this function is non-portable; other POSIX systems may have different np alternatives
331         pthread_getattr_np(thread, &sattr);
332 #endif
333         // Should work but fails on Linux (?)
334         //  pthread_attr_getstack(&sattr, &stackBase, &stackSize);
335         pthread_attr_getstackaddr(&sattr, &stackBase);
336         assert(stackBase);
337         stackThread = thread;
338     }
339 #endif
340 
341     int dummy;
342     void *stackPointer = &dummy;
343 
344     markStackObjectsConservatively(stackPointer, stackBase);
345 }
EDIT:.... found a kludge for now..
/* OpenBSD workaround */
   stack_t stack_info;
   pthread_stackseg_np(thread,&stack_info);
   void *stackBase=stack_info.ss_sp;
....
- Andy