ALT Linux kernel packages development
 help / color / mirror / Atom feed
* [d-kernel] kernel 2.4.32 .. 36 & pthreads проблема
@ 2008-02-04 19:03 gosha
  0 siblings, 0 replies; only message in thread
From: gosha @ 2008-02-04 19:03 UTC (permalink / raw)
  To: devel-kernel

                          Добрый день.

   Существует плета на базе MIPS процессора.

   Плата поддерживается ядрами 2.6.18 и 2.4.36

   Для тестирования ядра используется один и тот же раздел HDD с одним и тем же glibc и пр.

Имеем тестовую программку:
/*==================================================*/
#include <pthread.h>
#include <stdio.h>
int check_me = 0;
void* func(void* data) 
{int i;
 printf("%s> check_me=0x%p==%d ...\r\n", __FUNCTION__, &check_me, check_me);
 getchar();
 check_me = 42; 
 fflush(stdout);
 return &check_me;
}
 int main()
 {pthread_t t;
   void *ret;
   printf("thread_create ...\r\n");
   fflush(stdout);
   pthread_create (&t, 0, func, 0);
   printf("pthread_join ...\r\n");
   fflush(stdout);
   fflush(stdout);
   thread_join (t, &ret);
   printf("%s> check_me=0x%p==%d ...\r\n", __FUNCTION__, &check_me, check_me);
   printf("return . . \r\n");
   fflush(stdout);
   return (check_me != 42 || ret != &check_me);
}
/*==================================================*/

   При пользовании ядра 2.6.18 - все ok,

   При пользовании ядра 2.4.32 .. 36 странным образом ломаются pthreads:
             - glibc собрано без поддержки nptl;
	     - после старта программы появляются 3 thread:
					1. родитель;
					2. __pthread_manager() из glibc;
					3. потомок;
	     - после нажатия кнопочки (см исходный текст тестового примера) срабатывает getchar() потомок завершается;
	     - при попытке забрать код завершения, __pthread_manager() получает SISSEGV в функции   
                                           int *__errno_location (void), 

             Но если запустить ту же тестовую программку под GDB- все проходит ok.

   Как бы (каким методом) можно было локализовать и исправить данную проблему?

  Спасибо.

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-02-04 19:03 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-02-04 19:03 [d-kernel] kernel 2.4.32 .. 36 & pthreads проблема gosha

ALT Linux kernel packages development

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel-kernel/0 devel-kernel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel-kernel devel-kernel/ http://lore.altlinux.org/devel-kernel \
		devel-kernel@altlinux.org devel-kernel@altlinux.ru devel-kernel@altlinux.com
	public-inbox-index devel-kernel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel-kernel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git