Re: [Quickfix-developers] Build problems on Solaris
Brought to you by:
orenmnero
From: Joerg T. <Joe...@ma...> - 2003-04-03 11:35:00
|
Hi Barry, this is an easy one... > The only problem is that I don't seem able to execute pbind properly against > any process that I own. Insufficient rights I am guessing. For example: No, invalid argument as pbind tells you. > bash-2.03$ /usr/sbin/psrinfo > 1 on-line since 07/19/02 18:35:00 > 2 on-line since 07/19/02 18:35:02 From this output, you see that you have processors 1 and 2 (see first column). > bash-2.03$ /usr/sbin/pbind -b 0 3761 > /usr/sbin/pbind: cannot bind pid 3761: Invalid argument But you try to bind to processor 0 (-b 0) which simply does not exist -- therefore the invalid argument. I am sorry for the rather sketchy explanation in my last mail. I thought that it was obvious to use psrinfo to look the available processor number (at my Sun: 0, but at your Sun: 1 and 2) and I also thought that there is always a processor 0. Nevertheless, feel free to ask further questions. Actually, we used this approach to hotfix a threading problem under heavy load on a multiprocessor machine while development took place on a single processor one. But later we discovered, that we had used C library functions which are not thread save. After we fixed this, we could drop the pbind. For all non-thread save functions, there are thread-safe (re-entrant) variants suffixed by "_r". In our case, gethostbyname() was one of the culprits. We replaced it by gethostbyname_r(), which lead to a somewhat more complex call syntax. Oren, perhaps QF uses some non-thread safe functions (e.g. gethostbyname()). In my experience, this can work for a long time, but if you switch to a real fast MP machine (for production), the program starts to dump core. On my machine, I looked in the following way for all "_r" suffixed functions: joerg@polaris:/usr/lib $ nm -A -g -n lib*.so | egrep '_r$' | grep -v UNDEF libXm.so: [6411] | 1542716| 252|FUNC |GLOB |0 |12 |XmFontListCreate_r libXm.so: [7899] | 1542040| 256|FUNC |GLOB |0 |12 |XmFontListEntryCreate_r libXm.so: [8495] | 1542980| 12|FUNC |GLOB |0 |12 |XmStringCreateFontList_r libXm.so: [6958] | 483476| 96|FUNC |GLOB |0 |12 |_XmReCacheLabG_r libbsm.so: [865] | 30892| 408|FUNC |GLOB |0 |9 |getauclassent_r libbsm.so: [586] | 31364| 76|FUNC |GLOB |0 |9 |getauclassnam_r libbsm.so: [587] | 36924| 424|FUNC |GLOB |0 |9 |getauevent_r libbsm.so: [727] | 37412| 92|FUNC |GLOB |0 |9 |getauevnam_r libbsm.so: [814] | 37504| 88|FUNC |GLOB |0 |9 |getauevnum_r libbsm.so: [826] | 54888| 424|FUNC |GLOB |0 |9 |getauuserent_r libbsm.so: [583] | 55368| 168|FUNC |GLOB |0 |9 |getauusernam_r libc.so: [2699] | 227336| 332|FUNC |GLOB |0 |9 |__posix_asctime_r libc.so: [3019] | 227852| 68|FUNC |GLOB |0 |9 |__posix_ctime_r libc.so: [3752] | 608620| 100|FUNC |GLOB |0 |9 |__posix_getgrgid_r libc.so: [4553] | 608856| 92|FUNC |GLOB |0 |9 |__posix_getgrnam_r libc.so: [4510] | 240376| 120|FUNC |GLOB |0 |9 |__posix_getlogin_r libc.so: [3910] | 611572| 100|FUNC |GLOB |0 |9 |__posix_getpwnam_r libc.so: [3028] | 611336| 100|FUNC |GLOB |0 |9 |__posix_getpwuid_r libc.so: [3346] | 615168| 200|FUNC |GLOB |0 |9 |__posix_readdir_r libc.so: [3199] | 349788| 148|FUNC |GLOB |0 |9 |__posix_ttyname_r libc.so: [4378] | 227668| 48|FUNC |GLOB |0 |9 |_asctime_r libc.so: [3478] | 615368| 48|FUNC |GLOB |0 |9 |_ctermid_r libc.so: [4082] | 227780| 72|FUNC |GLOB |0 |9 |_ctime_r libc.so: [3184] | 609252| 124|FUNC |GLOB |0 |9 |_fgetgrent_r libc.so: [3038] | 611976| 124|FUNC |GLOB |0 |9 |_fgetpwent_r libc.so: [3294] | 613520| 124|FUNC |GLOB |0 |9 |_fgetspent_r libc.so: [3835] | 609044| 208|FUNC |GLOB |0 |9 |_getgrent_r libc.so: [3797] | 607960| 256|FUNC |GLOB |0 |9 |_getgrgid_r libc.so: [4619] | 607628| 332|FUNC |GLOB |0 |9 |_getgrnam_r libc.so: [3589] | 240080| 296|FUNC |GLOB |0 |9 |_getlogin_r libc.so: [4636] | 611768| 208|FUNC |GLOB |0 |9 |_getpwent_r libc.so: [3228] | 610772| 244|FUNC |GLOB |0 |9 |_getpwnam_r libc.so: [4694] | 611016| 184|FUNC |GLOB |0 |9 |_getpwuid_r libc.so: [3016] | 613312| 208|FUNC |GLOB |0 |9 |_getspent_r libc.so: [3807] | 613080| 136|FUNC |GLOB |0 |9 |_getspnam_r libc.so: [3116] | 336028| 72|FUNC |GLOB |0 |9 |_gmtime_r libc.so: [3720] | 335940| 68|FUNC |GLOB |0 |9 |_localtime_r libc.so: [3929] | 614524| 92|FUNC |GLOB |0 |9 |_rand_r libc.so: [3110] | 614616| 348|FUNC |GLOB |0 |9 |_readdir64_r libc.so: [3092] | 614964| 204|FUNC |GLOB |0 |9 |_readdir_r libc.so: [4684] | 324656| 128|FUNC |GLOB |0 |9 |_strtok_r libc.so: [3166] | 616336| 176|FUNC |GLOB |0 |9 |_tmpnam_r libc.so: [4325] | 349056| 732|FUNC |GLOB |0 |9 |_ttyname_r libc.so: [3870] | 608484| 136|FUNC |GLOB |0 |9 |_uncached_getgrgid_r libc.so: [4153] | 608720| 136|FUNC |GLOB |0 |9 |_uncached_getgrnam_r libc.so: [4681] | 611436| 136|FUNC |GLOB |0 |9 |_uncached_getpwnam_r libc.so: [4479] | 611200| 136|FUNC |GLOB |0 |9 |_uncached_getpwuid_r libc.so: [3587] | 227668| 48|FUNC |WEAK |0 |9 |asctime_r libc.so: [3559] | 615368| 48|FUNC |WEAK |0 |9 |ctermid_r libc.so: [2899] | 227780| 72|FUNC |WEAK |0 |9 |ctime_r libc.so: [4579] | 609252| 124|FUNC |WEAK |0 |9 |fgetgrent_r libc.so: [3187] | 611976| 124|FUNC |WEAK |0 |9 |fgetpwent_r libc.so: [3755] | 613520| 124|FUNC |WEAK |0 |9 |fgetspent_r libc.so: [3185] | 609044| 208|FUNC |WEAK |0 |9 |getgrent_r libc.so: [2760] | 607960| 256|FUNC |WEAK |0 |9 |getgrgid_r libc.so: [3782] | 607628| 332|FUNC |WEAK |0 |9 |getgrnam_r libc.so: [4251] | 240080| 296|FUNC |WEAK |0 |9 |getlogin_r libc.so: [3271] | 243412| 184|FUNC |GLOB |0 |9 |getnetgrent_r libc.so: [3520] | 611768| 208|FUNC |WEAK |0 |9 |getpwent_r libc.so: [4097] | 610772| 244|FUNC |WEAK |0 |9 |getpwnam_r libc.so: [3320] | 611016| 184|FUNC |WEAK |0 |9 |getpwuid_r libc.so: [3851] | 613312| 208|FUNC |WEAK |0 |9 |getspent_r libc.so: [4436] | 613080| 136|FUNC |WEAK |0 |9 |getspnam_r libc.so: [3362] | 336028| 72|FUNC |WEAK |0 |9 |gmtime_r libc.so: [3898] | 335940| 68|FUNC |WEAK |0 |9 |localtime_r libc.so: [3182] | 614524| 92|FUNC |WEAK |0 |9 |rand_r libc.so: [3279] | 614616| 348|FUNC |WEAK |0 |9 |readdir64_r libc.so: [3418] | 614964| 204|FUNC |WEAK |0 |9 |readdir_r libc.so: [3288] | 324656| 128|FUNC |WEAK |0 |9 |strtok_r libc.so: [4516] | 616336| 176|FUNC |WEAK |0 |9 |tmpnam_r libc.so: [3538] | 349056| 732|FUNC |WEAK |0 |9 |ttyname_r libm.so: [594] | 18020| 16|FUNC |GLOB |0 |9 |__gamma_r libm.so: [612] | 28796| 16|FUNC |GLOB |0 |9 |__lgamma_r libm.so: [658] | 18020| 16|FUNC |WEAK |0 |9 |gamma_r libm.so: [632] | 28796| 16|FUNC |WEAK |0 |9 |lgamma_r libnsl.so: [3766] | 435368| 52|FUNC |GLOB |0 |9 |__nis_map_group_r libnsl.so: [3773] | 234608| 160|FUNC |GLOB |0 |9 |_switch_gethostbyaddr_r libnsl.so: [3501] | 119800| 148|FUNC |GLOB |0 |9 |_switch_gethostbyname_r libnsl.so: [3929] | 234768| 160|FUNC |GLOB |0 |9 |_switch_getipnodebyaddr_r libnsl.so: [3543] | 234460| 148|FUNC |GLOB |0 |9 |_switch_getipnodebyname_r libnsl.so: [3646] | 216360| 48|FUNC |GLOB |0 |9 |_uncached_gethostbyaddr_r libnsl.so: [4061] | 216348| 12|FUNC |GLOB |0 |9 |_uncached_gethostbyname_r libnsl.so: [4253] | 216612| 200|FUNC |GLOB |0 |9 |gethostbyaddr_r libnsl.so: [3714] | 216408| 204|FUNC |GLOB |0 |9 |gethostbyname_r libnsl.so: [4141] | 218508| 144|FUNC |GLOB |0 |9 |gethostent_r libnsl.so: [4225] | 228912| 148|FUNC |GLOB |0 |9 |getrpcbyname_r libnsl.so: [3561] | 229060| 148|FUNC |GLOB |0 |9 |getrpcbynumber_r libnsl.so: [4424] | 229328| 132|FUNC |GLOB |0 |9 |getrpcent_r libnsl.so: [3817] | 114092| 76|FUNC |GLOB |0 |9 |inet_ntoa_r libnsl.so: [3526] | 415004| 96|FUNC |GLOB |0 |9 |nis_leaf_of_r libnsl.so: [4178] | 430712| 176|FUNC |GLOB |0 |9 |nis_sperror_r libsocket.so: [273] | 20944| 152|FUNC |GLOB |0 |9 |getnetbyaddr_r libsocket.so: [261] | 20796| 148|FUNC |GLOB |0 |9 |getnetbyname_r libsocket.so: [343] | 21220| 132|FUNC |GLOB |0 |9 |getnetent_r libsocket.so: [307] | 22304| 148|FUNC |GLOB |0 |9 |getprotobyname_r libsocket.so: [234] | 22452| 148|FUNC |GLOB |0 |9 |getprotobynumber_r libsocket.so: [463] | 22716| 132|FUNC |GLOB |0 |9 |getprotoent_r libsocket.so: [458] | 23488| 156|FUNC |GLOB |0 |9 |getservbyname_r libsocket.so: [464] | 23644| 160|FUNC |GLOB |0 |9 |getservbyport_r libsocket.so: [378] | 24268| 136|FUNC |GLOB |0 |9 |getservent_r Cheers, Jörg -- Joerg Thoennes http://macd.com Tel.: +49 (0)241 44597-24 Macdonald Associates GmbH Fax : +49 (0)241 44597-10 Lothringer Str. 52, D-52070 Aachen |