vBulletin Search Engine Optimization
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| I have a problem with an executable. It shows this message when I try to run the executable exec(): 0509-036 Cannot load program Algorithm because of the following errors: 0509-130 Symbol resolution failed for Algorithm because: 0509-136 Symbol select (number 46) is not exported from dependent module /unix. 0509-192 Examine .loader section symbols with the 'dump -Tv' command. The dump -Tv of the executable shows this : ***Loader Section*** ***Loader Symbol Table Information*** [Index] Value Scn IMEX Sclass Type IMPid Name [] 0x20024a08 .data RW SECdef [noIMid] __rtinit [1] 0x00000000 undef IMP UA EXTref /unix environ [2] 0x00000000 undef IMP UA EXTref /unix errno [3] 0x00000000 undef IMP DS EXTref /unix access [4] 0x00000000 undef IMP DS EXTref /unix brk [5] 0x00000000 undef IMP DS EXTref /unix close [6] 0x00000000 undef IMP DS EXTref /unix creat [7] 0x00000000 undef IMP DS EXTref /unix disclaim [8] 0x00000000 undef IMP DS EXTref /unix execve [9] 0x00000000 undef IMP DS EXTref /unix _exit [10] 0x00000000 undef IMP DS EXTref /unix _fp_trapstate_ker [11] 0x00000000 undef IMP DS EXTref /unix fstatfs [12] 0x00000000 undef IMP DS EXTref /unix fstatx [13] 0x00000000 undef IMP DS EXTref /unix getdirent [14] 0x00000000 undef IMP DS EXTref /unix getgidx [15] 0x00000000 undef IMP DS EXTref /unix getpid [16] 0x00000000 undef IMP DS EXTref /unix getrlimit [17] 0x00000000 undef IMP DS EXTref /unix gettimerid [18] 0x00000000 undef IMP DS EXTref /unix getuidx [19] 0x00000000 undef IMP DS EXTref /unix incinterval [20] 0x00000000 undef IMP DS EXTref /unix kfcntl [21] 0x00000000 undef IMP DS EXTref /unix kfork [22] 0x00000000 undef IMP DS EXTref /unix kgetpgrp [23] 0x00000000 undef IMP DS EXTref /unix kill [24] 0x00000000 undef IMP DS EXTref /unix kioctl [25] 0x00000000 undef IMP DS EXTref /unix kioctl32 [26] 0x00000000 undef IMP DS EXTref /unix klseek [27] 0x00000000 undef IMP DS EXTref /unix kpread [28] 0x00000000 undef IMP DS EXTref /unix kpwrite [29] 0x00000000 undef IMP DS EXTref /unix kread [30] 0x00000000 undef IMP DS EXTref /unix kreadv [31] 0x00000000 undef IMP DS EXTref /unix kwaitpid [32] 0x00000000 undef IMP DS EXTref /unix kwaitpid64 [33] 0x00000000 undef IMP DS EXTref /unix kwrite [34] 0x00000000 undef IMP DS EXTref /unix kwritev [35] 0x00000000 undef IMP DS EXTref /unix __loadx [36] 0x00000000 undef IMP DS EXTref /unix loadquery [37] 0x00000000 undef IMP DS EXTref /unix lseek [38] 0x00000000 undef IMP DS EXTref /unix mntctl [39] 0x00000000 undef IMP DS EXTref /unix mprotect [40] 0x00000000 undef IMP DS EXTref /unix open [41] 0x00000000 undef IMP DS EXTref /unix pipe [42] 0x00000000 undef IMP DS EXTref /unix privcheck [43] 0x00000000 undef IMP DS EXTref /unix profil [44] 0x00000000 undef IMP DS EXTref /unix rmdir [45] 0x00000000 undef IMP DS EXTref /unix sbrk [46] 0x00000000 undef IMP DS EXTref /unix select [47] 0x00000000 undef IMP DS EXTref /unix shmat [48] 0x00000000 undef IMP DS EXTref /unix shmctl [49] 0x00000000 undef IMP DS EXTref /unix shmdt [50] 0x00000000 undef IMP DS EXTref /unix shmget [51] 0x00000000 undef IMP DS EXTref /unix sigprocmask [52] 0x00000000 undef IMP DS EXTref /unix statfs [53] 0x00000000 undef IMP DS EXTref /unix statx [54] 0x00000000 undef IMP DS EXTref /unix sysconfig [55] 0x00000000 undef IMP DS EXTref /unix unlink [56] 0x00000000 undef IMP DS EXTref /unix socket [57] 0x00000000 undef IMP DS EXTref /unix bind [58] 0x00000000 undef IMP DS EXTref /unix connext [59] 0x00000000 undef IMP DS EXTref /unix sendto [60] 0x00000000 undef IMP DS EXTref /unix send [61] 0x00000000 undef IMP DS EXTref /unix nrecvfrom [62] 0x00000000 undef IMP DS EXTref /unix recv [63] 0x00000000 undef IMP DS EXTref /unix shutdown [64] 0x00000000 undef IMP DS EXTref /unix setsockopt [65] 0x00000000 undef IMP DS EXTref /unix getsockopt [66] 0x00000000 undef IMP DS EXTref /unix ngetsockname [67] 0x00000000 undef IMP DS EXTref /unix ngetpeername [68] 0x00000000 undef IMP DS EXTref /unix getdomainname [69] 0x00000000 undef IMP DS EXTref /unix gethostname [70] 0x00000000 undef IMP UA EXTref /unix _system_configuration [71] 0x00000000 undef IMP UA EXTref /unix _system_TB_config [72] 0x00003100 undef IMP XO EXTref [noIMid] __mulh [73] 0x00003180 undef IMP XO EXTref [noIMid] __mull [74] 0x00003200 undef IMP XO EXTref [noIMid] __divss [75] 0x00003280 undef IMP XO EXTref [noIMid] __divus [76] 0x00003300 undef IMP XO EXTref [noIMid] __quoss [77] 0x00003380 undef IMP XO EXTref [noIMid] __quous [78] 0x00000000 undef IMP DS EXTref /unix _pause [79] 0x00000000 undef IMP DS EXTref /unix _nsleep [80] 0x00000000 undef IMP DS EXTref /unix _sigaction [81] 0x00000000 undef IMP DS EXTref /unix _sigpending [82] 0x00000000 undef IMP DS EXTref /unix _sigsuspend [83] 0x00000000 undef IMP DS EXTref /unix _load [84] 0x00000000 undef IMP DS EXTref /unix __unload [85] 0x00000000 undef IMP DS EXTref /unix cs [86] 0x00000000 undef IMP DS EXTref /unix _fp_fpscrx [87] 0x2000d62c .data EXP RW Ldef [noIMid] _GLOBAL__F_TokenTable [88] 0x20024a74 .data ENTpt DS SECdef [noIMid] __start This happens on AIX 5.1.0.0. I have AIX 4.3.2.0 installed on another machine and the executable works fine there. I've understood it's a problem with the select function which is not exported from the /unix module but don't know what the /unix module is and where I can find it. Can someone please help me with this problem? Many thanks. -- Posted via http://dbforums.com |
| |||
| looks like your binary is incompatible. are you running 64bit 5.1 kernel ? Rgds Mark Taylor -- Posted via http://dbforums.com |
| |||
| PS. if you don't know what /unix is then you are in all sorts of trouble..... I would suggest you start reading the docs. http://publibn.boulder.ibm.com/cgi-b...US&viewset=AIX Or search the redbooks site for AIX and Certification, there are some good admin redbooks out there. Once you have a handle on it, then you can look at symbol resolution and how it works. http://publibn.boulder.ibm.com/doc_l...xprggd/kernex- tc/kern_enviro.htm#HDRA23C0F19A Rgds Mark -- Posted via http://dbforums.com |
| |||
| Thanks for the reply Mark, I think it is a 64bit 5.1 kernel because this command lsattr -E -l proc0 returns this : state enable Processor state False type PowerPC_RS64-III Processor type False frequency 500040000 Processor Speed False On the machine with a 4.3 kernel, the command lsattr -E -l proc0 returns this : state enable Processor state False type PowerPC_RS64-II Processor type False Therefore I think it is a 64bit kernel as well (according to the processor type) and the executable works well there. My knowledge of AIX is limited anyway. I think the select() function is in libc.a and it has not moved from AIX 4.3 to 5.1 apparently and I don't think the XCOFF structure has changed also. I don't really understand what is the problem. Any help is appreciated. Thanks. Regards. -- Posted via http://dbforums.com |
| |||
| lsattr -EHL on the processor will just tell you if the h/w is 64 bit..... 64 bit h/w can run 32 bit or 64 bit kernel bootinfo -K will tell you what kernel is loaded. i.e. bootinfo -K 32 means i am running 32 bit kernel. Rgds Mark -- Posted via http://dbforums.com |
| |||
| also, a binary complied on 4.3.2 will run on 5.1 32 bit, but not 5.1 64 bit, it will need to be recomplied. -- Posted via http://dbforums.com |
| |||
| Thanks. I don't have root access on the servers to execute the bootinfo command but after investigation, it appears that both kernels are 32bit. Therefore I shouldn't need a recompiled binary, should I? Do you have any other idea please? Many thanks. -- Posted via http://dbforums.com |
| |||
| 1st check for this apar instfix -ik IY38440 then: lppchk -v --> any broken filesets ? echo $LIBPATH --> /usr/lib ? Rgds Mark Taylor -- Posted via http://dbforums.com |
| ||||
| instfix -ik IY38440 returns this (on both machines) : There was no data for IY38440 in the fix database. And lppchk -v doesn't return anything (I suppose there's no broken fileset then). The LIBPATH is not set on any machine. I have tried to set it to various values, including /usr/lib but it doesn't work (although libc.a is present in that directory). Is there a way to know which library the binary uses on the AIX 4.3.2 (so I can use the same on the other machine)? Thanks a lot. -- Posted via http://dbforums.com |
| Thread Tools | |
| Display Modes | |
|
|