OT: WAS: relink ELF souboru
Roman Divacky
rdivacky at freebsd.org
Mon Jun 18 15:28:03 CEST 2007
> Treba Java. Mam tu binar (zdrojaky nejsou), ktery na Woknech chodi, na
> Linuxu taky, na FreeBSD+JVM 1.5.0 nechodi. Spojuje se to TCP kamsi na
> nejaky server a rekne mi to, ze spojeni nelze navazat. Pricemz vim, ze
> se ve skutecnosti ani nepokusil (tcpdump), ale zresolveni jmena se mu
> korektne povedlo (option debug v resolv.conf). Uvnitr aplikace to
> havaruje na volani 'new Socket(InetAddress address, int port)'
> (disassembler) - nastane IOException, chyba EINVAL. S trochou stesti
sockety v BSD a Linuxu maji trosku jinou semantiku, nevim o solarisu ale
myslim ze vsecky sysV derivaty to tak maji.
takze muj nazor je ten ze v te jave je to napojeni JVM<->OS pro sockety delane
tak ze to sysV sezere, zatimco na bsd to vrati EINVAL.
ja se s necim podobnym setkal u sendmsg kde linuxovy ping predava tudle strukturu:
struct msghdr {
void *msg_name; /* optional address */
socklen_t msg_namelen; /* size of address */
struct iovec *msg_iov; /* scatter/gather array */
int msg_iovlen; /* # elements in msg_iov */
void *msg_control; /* ancillary data, see below */
socklen_t msg_controllen; /* ancillary data buffer len */
int msg_flags; /* flags on received message */
};
tak ze msg_control je NULL a msg_controllen je nenulove, moc to nedava smysl a
myslim ze todle standardy moc neresi takze je to zavisle na implementace, a BSD
byva tradicne striktnejsi nez linux aspol.
takze bych to videl spis na chybu v JDK nez v te javove aplikaci, ale jak jsem rekl
tohle jsou ciste spekulace na urovni "cernovlaska vs. blondyna"
just my 2 cents ;)
roman
p.s. zitra mi drzte palce, mam statnice :)
More information about the Users-l
mailing list