ALT Linux kernel packages development
 help / color / mirror / Atom feed
From: gosha <gosha@elins.ru>
To: devel-kernel@lists.altlinux.org
Subject: [d-kernel] kernel 2.4.32 .. 36 & pthreads проблема
Date: Mon, 4 Feb 2008 19:03:11 +0000
Message-ID: <200802041903.11897.gosha@elins.ru> (raw)

                          Добрый день.

   Существует плета на базе 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.

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

  Спасибо.

                 reply	other threads:[~2008-02-04 19:03 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200802041903.11897.gosha@elins.ru \
    --to=gosha@elins.ru \
    --cc=devel-kernel@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

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