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