Good news for HP-UX users

kaffe@rufus.w3.org kaffe@rufus.w3.org
Tue, 18 Aug 1998 14:44:08 +0100


--0__=gqqIxQmolCAtXD1Q6R9qHulz2I63Zi6oiNR6zZeoTbPVC2mtuw1DYdZ0
Content-type: text/plain; charset=US-ASCII




Hello!

Good news: sysdepCallMethod for HP-UX (PA-RISC processor) can naw handle
arguments of size 4 and can return integer, long and pointer. That's enough
to run HelloWorldApp in interp mode :-) I hope to send my results before
this weekend.
Non-working situations (long or double argument, float or double result)
are protected by assert() calls in the moment.
Unfortunately, I can't get anything else running because of some strange
errors. Following happens if I try to run Unico.class:

Program received signal SIGSEGV, Segmentation fault.
0x2ed48 in loadNativeLibrarySym (name=0x0) at external.c:182
182             LIBRARYFUNCTION(func, name);
(gdb)

I added assert(name==NULL) before this instruction, but it never hits. It
seems something is wrong with gdb.
gdb-4.17, gcc-2.7.2.3, HP-UX 10.20.
CFLAGS='-g' ./configure --host=hppa1.1-hp-hpux10.20 --with-staticlib
--with-engine=intrp --with-threads=unix-internal

Anyway, there are two patches, which can be applied right now.
1) kaffe-main.diff provides workaround for a bug in gcc-2.7.2.3 which
generates buggy code here (at least without optimization and for hppa
target). It is better to exclude the whole "if" statement rather than have
an empty branch after "if".
2) kaffe-shlib.diff provides LIBSHARE value for the HP-UX linker and fixes
a syntax error in LIBRARYFUNCTION definition (break not within loop or
switch). It also changes "???" to "HP-UX" in a comment, since nobody knows,
which other OS'es use this definition :-)
I have tested both patches. Shared libraries are actually loaded by the
affected call. Diff's have been made on the machine, where the testing took
place.

Pavel Roskin
ECsoft
London, UK

(See attached file: kaffe-shlib.diff)(See attached file: kaffe-main.diff)

--0__=gqqIxQmolCAtXD1Q6R9qHulz2I63Zi6oiNR6zZeoTbPVC2mtuw1DYdZ0
Content-type: application/octet-stream; 
	name="kaffe-shlib.diff"
Content-transfer-encoding: base64

LS0tIGthZmZlL2NvbmZpZy9wYXJpc2MvaHB1eC9jb25maWcuZnJhZy5vcmlnCVR1ZSBNYXIgMzEg
MjA6MTA6NTMgMTk5OAorKysga2FmZmUvY29uZmlnL3BhcmlzYy9ocHV4L2NvbmZpZy5mcmFnCVR1
ZSBBdWcgMTggMTA6MjU6MzYgMTk5OApAQCAtNiw2ICs2LDcgQEAKIGlmIHRlc3QgIiRhY19jdl9w
cm9nX2djYyIgPSAieWVzIiA7IHRoZW4KIAlQSUM9LWZwaWMKIAlMSUJFWFQ9LnNsCisJTElCU0hB
UkU9LWIKIAlJTlNUQUxMX0RBVEE9JyR7SU5TVEFMTH0gLW0gNTU1JwogZWxzZQogCSMgZm9yIHRo
ZSBIUC1VWCBjIGNvbXBpbGVyIG9ubHkKLS0tIGthZmZlL2thZmZlL2thZmZldm0vc2xpYi5oLm9y
aWcJVHVlIE1hciAzMSAyMDoxMDo1NCAxOTk4CisrKyBrYWZmZS9rYWZmZS9rYWZmZXZtL3NsaWIu
aAlUdWUgQXVnIDE4IDEwOjM2OjQ2IDE5OTgKQEAgLTcwLDcgKzcwLDcgQEAKIC8qIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSAqLwogCiAvKgotICogPz8/IHN0eWxlIHNoYXJlZCBsaWJyYXJ5IGludGVyZmFjZS4K
KyAqIEhQLVVYIHN0eWxlIHNoYXJlZCBsaWJyYXJ5IGludGVyZmFjZS4KICAqLwogI2lmIGRlZmlu
ZWQoSEFWRV9TSExfTE9BRCkKICNpZiBkZWZpbmVkKEhBVkVfRExfSCkKQEAgLTgyLDggKzgyLDgg
QEAKICNkZWZpbmUJTElCUkFSWUZVTkNUSU9OKEZVTkMsIFNZTSkJCQkJCVwKIAl7CQkJCQkJCQlc
CiAJCXNobF90IGFsbF9saWJzID0gMDsJCQkJCVwKLQkJaWYgKHNobF9maW5kc3ltKCZhbGxfbGli
cyxTWU0sVFlQRV9QUk9DRURVUkUsJkZVTkMpID09IDApIHsgXAotCQkJYnJlYWs7CQkJCQkJXAor
CQlpZiAoIXNobF9maW5kc3ltKCZhbGxfbGlicyxTWU0sVFlQRV9QUk9DRURVUkUsJkZVTkMpKQlc
CisJCQlGVU5DID0gMDsJCQkJCVwKIAkJfQkJCQkJCQlcCiAJfQogI2RlZmluZQlMSUJSQVJZSEFO
RExFCXNobF90Cg==

--0__=gqqIxQmolCAtXD1Q6R9qHulz2I63Zi6oiNR6zZeoTbPVC2mtuw1DYdZ0
Content-type: application/octet-stream; 
	name="kaffe-main.diff"
Content-transfer-encoding: base64

LS0tIGthZmZlL2thZmZlL2thZmZlL21haW4uYy5vcmlnCVR1ZSBKdWwgMTQgMTU6MDI6MDggMTk5
OAorKysga2FmZmUva2FmZmUva2FmZmUvbWFpbi5jCVR1ZSBBdWcgMTggMTE6MDE6MzYgMTk5OApA
QCAtNjUsMTEgKzY1LDExIEBACiAJY3AgPSBnZXRlbnYoQ0xBU1NQQVRIMSk7CiAJaWYgKGNwID09
IDApIHsKIAkJY3AgPSBnZXRlbnYoQ0xBU1NQQVRIMik7Ci0JCWlmIChjcCA9PSAwKSB7CiAjaWYg
ZGVmaW5lZChERUZBVUxUX0NMQVNTUEFUSCkKKwkJaWYgKGNwID09IDApIHsKIAkJCWNwID0gREVG
QVVMVF9DTEFTU1BBVEg7Ci0jZW5kaWYKIAkJfQorI2VuZGlmCiAJfQogCXZtYXJncy5jbGFzc3Bh
dGggPSBjcDsKIAo=

--0__=gqqIxQmolCAtXD1Q6R9qHulz2I63Zi6oiNR6zZeoTbPVC2mtuw1DYdZ0--