I tried to install PolyML again... Here is what I did.
Unpacked the driver archive: polyml-driver-4.1.3.tar.gz Then ran ./configure. It warned me about the operating system saying: "unknown operating system OpenBSD". And there are no XWindows support either (which is understanable because Xm is in different directories on my system, anyways). I continued and tried to compile it: make... There was a compilation error: discgc.c line 36 alloca.h (No such file or directory - NSFOD).
Then I copied the part where the OS is identified in the configure file for FREEBSD. The changes are like this:
OpenBSD) echo "OpenBSD operating system" ARCH=`uname -m` OS=freebsd OSFLAGS=-DFREEBSD LIBS="-lm" ;;
After that ran configure again, which removed the warning regarding the operating system.
Then tried to compile it again (first make clean, then make). There were again errors which I have changed like this...
1. mmap.c: 66 values.h (No such file or directory). I commented out the include. There is no values in my system. I tried to find it. Maybe I have to find the corresponding header file for this. In the mmap.c file there is a comment that says that FREEBSD warns about that particular file. Since there is a warning I commented it out.
There is a file /usr/include/limits.h that defines the constants defined in values.h on other systems. I will try to include this file and compile again... But since it compiles without this file, the constants must be defined somewhere...
Anyways here are the remaining steps that I have taken.
2. reals.c: 24 floatingpoint.h (NSFOD). I have changed this include to ieeefp.h, which is on my system. No floatingpoint.h present. floatingpoint.h on FreeBSD is for IEEE fp functionality.
3. realconv.c: warnings here. Ignored.
after these changes I compiled again (make clean and then make). Compiled fine. Installed the polyML using make install.
Then I continued and created a temp directory and unpacked the polyml-4.1.3.i386.tar.gz database to the directory created. It created a DB413Release and a link ML_dbase. In the same directory I ran poly and it gave me this message:
Can't process signal at 2071acee
and poly.core created (core dumped).
By the way, my system is (using uname -srv): OpenBSD 3.4 GENERIC #18
Riza
Date: Thu, 27 Jan 2005 11:00:37 +0000 From: David Matthews
It's almost impossible to suggest anything here without a lot more information. I'm surprised, though, that you've modified addresses.h . Did you have a reason for this? I have had Poly/ML running on FreeBSD for many years and the database it uses is identical to that on Linux so I would have expected that it would also run on OpenBSD. Have you tried compiling the driver using the options for FreeBSD and seeing if that works?
David.
__________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com
I've installed OpenBSD 3.6 on a spare disc and found out the problem. It seems that OpenBSD generates a SIGSEGV when Poly writes to a read-only location whereas FreeBSD generates a SIGBUS. Around line 1531 in i386-dep.c there is a line that says something like
isAccess = sig == SIGBUS;
This needs to be changed to
isAccess = sig == SIGBUS || sig == SIGSEGV;
This seems to work. I will update the development sources to include this and a few other changes I made to get it to compile. I had to change floatingpoint.h to ieeefp.h (this works on FreeBSD 5.3) but I think the other changes are already in the development sources.
Regards, David.
Hello,every one I have a question about Poly/ML: Is there any possible to complie Posix Thread into Poly/ML like Posix Process. It seems no sml realization can do it. Jeff he
--------------------------------- Let's Celebrate Together! Yahoo! JAPAN