Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 Jun 2003 22:52:19 +0100
From:      "Steven Haywood" <steven@keybaud.org>
To:        <questions@freebsd.org>
Subject:   Threads problem on 5.1-Release sparc64
Message-ID:  <003301c339d1$b8b16f10$0100a8c0@sh>

next in thread | raw e-mail | index | archive | help
Hi folks

I'm still having pthreads problems on Sparc64 (5.1 Release):
The program concerned is:
# cat conftest.c
#include <pthread.h>

void* routine(void* p){return NULL;}

int main(){
  pthread_t p;
  if(pthread_create(&p,NULL,routine,NULL)!=0)
    return 1;
  (void)pthread_detach(p);
  return 0;
}


Compiled with:
 gcc -o moo -lc_r conftest.c
no errors

Trying to run it:
bash-2.05b# truss ./moo
mmap(0x0,7056,0x3,0x1000,-1,0x0)                 = 1075978240 (0x40222000)
munmap(0x40222000,0x1b90)                        = 0 (0x0)
__sysctl(0x7fdfffff490,0x2,0x40323110,0x7fdfffff488,0x0,0x0) = 0 (0x0)
mmap(0x0,32768,0x3,0x1002,-1,0x0)                = 1075978240 (0x40222000)
geteuid()                                        = 0 (0x0)
getuid()                                         = 0 (0x0)
getegid()                                        = 0 (0x0)
getgid()                                         = 0 (0x0)
mmap(0x0,40960,0x3,0x1002,-1,0x0)                = 1076011008 (0x4022a000)
open("/var/run/ld-elf.so.hints",0x0,010010540070) = 3 (0x3)
read(0x3,0x7fdfffff720,0x80)                     = 128 (0x80)
lseek(3,0x80,-1)                                 = 128 (0x80)
read(0x3,0x4022e000,0x57)                        = 87 (0x57)
close(3)                                         = 0 (0x0)
access("/usr/lib/libc_r.so.5",0)                 = 0 (0x0)
open("/usr/lib/libc_r.so.5",0x0,06)              = 3 (0x3)
fstat(3,0x7fdfffff7e0)                           = 0 (0x0)
read(0x3,0x7fdffffd720,0x2000)                   = 8192 (0x2000)
mmap(0x0,1220608,0x5,0x20002,3,0x0)              = 1077043200 (0x40326000)
mprotect(0x40342000,0x2000,0x7)                  = 0 (0x0)
mprotect(0x40342000,0x2000,0x5)                  = 0 (0x0)
mmap(0x40442000,16384,0x7,0x12,3,0x0)            = 1078206464 (0x40442000)
mmap(0x40446000,40960,0x7,0x1012,-1,0x0)         = 1078222848 (0x40446000)
close(3)                                         = 0 (0x0)
access("/usr/lib/libc.so.5",0)                   = 0 (0x0)
open("/usr/lib/libc.so.5",0x0,0137)              = 3 (0x3)
fstat(3,0x7fdfffff7e0)                           = 0 (0x0)
read(0x3,0x7fdffffd720,0x2000)                   = 8192 (0x2000)
mmap(0x0,2154496,0x5,0x20002,3,0x0)              = 1078263808 (0x40450000)
mprotect(0x40538000,0x2000,0x7)                  = 0 (0x0)
mprotect(0x40538000,0x2000,0x5)                  = 0 (0x0)
mmap(0x40638000,73728,0x7,0x12,3,0x0)            = 1080262656 (0x40638000)
mmap(0x4064a000,81920,0x7,0x1012,-1,0x0)         = 1080336384 (0x4064a000)
close(3)                                         = 0 (0x0)
mmap(0x0,304,0x3,0x1000,-1,0x0)                  = 1076051968 (0x40234000)
munmap(0x40234000,0x130)                         = 0 (0x0)
mmap(0x0,9456,0x3,0x1000,-1,0x0)                 = 1076051968 (0x40234000)
munmap(0x40234000,0x24f0)                        = 0 (0x0)
mmap(0x0,43072,0x3,0x1000,-1,0x0)                = 1076051968 (0x40234000)
munmap(0x40234000,0xa840)                        = 0 (0x0)
__sysctl(0x7fdfffff4f0,0x2,0x4065b218,0x7fdfffff4e8,0x0,0x0) = 0 (0x0)
getpid()                                         = 28449 (0x6f21)
fcntl(0x0,0x3,0x0)                               = 2 (0x2)
fcntl(0x1,0x3,0x0)                               = 2 (0x2)
fcntl(0x2,0x3,0x0)                               = 2 (0x2)
pipe()                                           = 3 (0x3)
fcntl(0x3,0x3,0x0)                               = 2 (0x2)
fcntl(0x3,0x4,0x6)                               = 0 (0x0)
fcntl(0x4,0x3,0x0)                               = 2 (0x2)
fcntl(0x4,0x4,0x6)                               = 0 (0x0)
readlink("/etc/malloc.conf",0x7fdfffff320,63)    ERR#2 'No such file or
directory'
issetugid()                                      = 0 (0x0)
getuid()                                         = 0 (0x0)
mmap(0x0,8192,0x3,0x1002,-1,0x0)                 = 1076051968 (0x40234000)
break(0x200d68)                                  = 0 (0x0)
break(0x200d68)                                  = 0 (0x0)
break(0x204000)                                  = 0 (0x0)
break(0x204000)                                  = 0 (0x0)
break(0x206000)                                  = 0 (0x0)
break(0x206000)                                  = 0 (0x0)
break(0x208000)                                  = 0 (0x0)
break(0x208000)                                  = 0 (0x0)
break(0x20a000)                                  = 0 (0x0)
break(0x20a000)                                  = 0 (0x0)
break(0x20c000)                                  = 0 (0x0)
__sysctl(0x7fdfffff610,0x2,0x40443370,0x7fdfffff5c8,0x0,0x0) = 0 (0x0)
mmap(0x7fdffefe000,8192,0x0,0x1000,-1,0x0)       = -1056768 (0xffefe000)
break(0x20c000)                                  = 0 (0x0)
break(0x20e000)                                  = 0 (0x0)
gettimeofday(0x40443390,0x0)                     = 0 (0x0)
sysarch(0x2,0x4063e100)                          = 0 (0x0)
sigaction(SIGHUP,0x0,0x40449420)                 = 0 (0x0)
sigaction(SIGINT,0x0,0x40449440)                 = 0 (0x0)
sigaction(SIGQUIT,0x0,0x40449460)                = 0 (0x0)
sigaction(SIGILL,0x0,0x40449480)                 = 0 (0x0)
sigaction(SIGTRAP,0x0,0x404494a0)                = 0 (0x0)
sigaction(SIGABRT,0x0,0x404494c0)                = 0 (0x0)
sigaction(SIGEMT,0x0,0x404494e0)                 = 0 (0x0)
sigaction(SIGFPE,0x0,0x40449500)                 = 0 (0x0)
sigaction(SIGBUS,0x0,0x40449540)                 = 0 (0x0)
sigaction(SIGSEGV,0x0,0x40449560)                = 0 (0x0)
sigaction(SIGSYS,0x0,0x40449580)                 = 0 (0x0)
sigaction(SIGPIPE,0x0,0x404495a0)                = 0 (0x0)
sigaction(SIGALRM,0x0,0x404495c0)                = 0 (0x0)
sigaction(SIGTERM,0x0,0x404495e0)                = 0 (0x0)
sigaction(SIGURG,0x0,0x40449600)                 = 0 (0x0)
sigaction(SIGTSTP,0x0,0x40449640)                = 0 (0x0)
sigaction(SIGCONT,0x0,0x40449660)                = 0 (0x0)
sigaction(SIGCHLD,0x0,0x40449680)                = 0 (0x0)
sigaction(SIGTTIN,0x0,0x404496a0)                = 0 (0x0)
sigaction(SIGTTOU,0x0,0x404496c0)                = 0 (0x0)
sigaction(SIGIO,0x0,0x404496e0)                  = 0 (0x0)
sigaction(SIGXCPU,0x0,0x40449700)                = 0 (0x0)
sigaction(SIGXFSZ,0x0,0x40449720)                = 0 (0x0)
sigaction(SIGVTALRM,0x0,0x40449740)              = 0 (0x0)
sigaction(SIGPROF,0x0,0x40449760)                = 0 (0x0)
sigaction(SIGWINCH,0x0,0x40449780)               = 0 (0x0)
sigaction(SIGINFO,0x0,0x404497a0)                = 0 (0x0)
sigaction(SIGUSR1,0x0,0x404497c0)                = 0 (0x0)
sigaction(SIGUSR2,0x0,0x404497e0)                = 0 (0x0)
sigaction(SIGPROF,0x7fdfffff5d0,0x0)             = 0 (0x0)
sigaction(SIGINFO,0x7fdfffff5d0,0x0)             = 0 (0x0)
sigaction(SIGCHLD,0x7fdfffff5d0,0x0)             = 0 (0x0)
sigprocmask(0x3,0x0,0x40443418)                  = 0 (0x0)
__sysctl(0x7fdfffff610,0x2,0x7fdfffff5f0,0x7fdfffff5c8,0x0,0x0) = 0 (0x0)
getdtablesize()                                  = 3405 (0xd4d)
break(0x20e000)                                  = 0 (0x0)
break(0x216000)                                  = 0 (0x0)
break(0x216000)                                  = 0 (0x0)
break(0x21e000)                                  = 0 (0x0)
break(0x21e000)                                  = 0 (0x0)
break(0x220000)                                  = 0 (0x0)
fcntl(0x0,0x4,0x6)                               = 0 (0x0)
fcntl(0x1,0x4,0x6)                               = 0 (0x0)
fcntl(0x2,0x4,0x6)                               = 0 (0x0)
sigprocmask(0x1,0x40322f40,0x7fdfffff850)        = 0 (0x0)
sigprocmask(0x3,0x40322f50,0x0)                  = 0 (0x0)
sysarch(0x1,0x40639390)                          = 0 (0x0)
mmap(0x7fdffeee000,65536,0x3,0x400,-1,0x0)       = -1122304 (0xffeee000)
setitimer(0x2,0x7fdfffff8d0,0x0)                 = 0 (0x0)
poll(0x216000,0x0,0x0)                           = 0 (0x0)

and it just hangs there until I ctrl-C it...

Please help! Mysql won't work, and I think I'm going to have to regress this
box back to 5.0-Release....

(and please don't tell me to ask on sparc64 - that list seems way too
devoted to deep down hardcore hardware hacking - no-one responded there last
time I asked this...)

Thanks
Steven



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?003301c339d1$b8b16f10$0100a8c0>