goo and FreeBSD
"T. Kurt Bond" <[email protected]> Wed, 21 Jan 2004 12:33:26 -0500
| Newsgroups | gmane.comp.lang.goo.general |
|---|---|
| Message-ID | <[email protected]> |
--sOY+qHVabE
Content-Type: text/plain; charset=us-ascii
Content-Description: message body text
Content-Transfer-Encoding: 7bit
Here are some notes on compiling and using goo-0_155-any-dev on
FreeBSD. I'm using FreeBSD 4.8, but later versions shouldn't be that
different.
1. FreeBSD 4.8 comes with version 2.0.1 of gmp. This is too old to
work with goo. (Some later versions of FreeBSD don't include gmp at
all, apparently.) Install the libgmp-4.1.2 port from
/usr/ports/math/libgmp4.
2. Install the boehm-gc port from /usr/ports/devel/boehm-gc.
3. FreeBSD ports install under /usr/local, but the FreeBSD gcc doesn't
look in /usr/local/include by default when compiling nor does it
look in /usr/local/lib by default when linking. You'll have to run
configure with the environment variables
CFLAGS='-I/usr/local/include' LDFLAGS='-L/usr/local/include'
4. On FreeBSD /usr/include/values.h warns that it is obsolete and
should be replaced with limits.h. The compilation of goo fails
because there are no definitions for LONG_MAX or LONG_MIN in
values.h. The solution is to replace values.h with limits.h
everywhere:
./c/g2c/goo/bignum.c:781:#include <values.h>
./src/goo/bignum.goo:7:#include <values.h>
./src/goo/bignum/%gmp.c:2:#include <values.h>
./src/goo/bignum/gmp.goo:9:#include <values.h>
5. As far as I can tell, the goo configure script does not save the
values of CFLAGS and LDFLAGS anywhere to be used when compiling the
C code generated at the repl, so those compilations fail with an
error about not being able to include gc/gc.h. Changing the
variable `bv' in the function `YgooSsystemYPcompile' in
c/g2c/goo/%system.c and src/goo/%system.c to include
"-I/usr/local/include" as one of its elements fixes that problem,
but it would probably be better to specify this through the
configure script somehow, either by saving the value of CFLAGS or
by an argument to the configure script.
Here's a patch, but don't apply it blindly, since it includes the
change to `YgooSsystemYPcompile' mentioned in #5.
--sOY+qHVabE
Content-Type: application/octet-stream
Content-Description: ugly patches for FreeBSD; use only for reference
Content-Disposition: attachment;
filename="goo.patch"
Content-Transfer-Encoding: base64
ZGlmZiAtYyAtciBnb28tMF8xNTUtYW55LWRldi9jL2cyYy9nb28vJXN5c3RlbS5jIGdvby1jdXJy
ZW50L2MvZzJjL2dvby8lc3lzdGVtLmMKKioqIGdvby0wXzE1NS1hbnktZGV2L2MvZzJjL2dvby8l
c3lzdGVtLmMJV2VkIE5vdiAxOSAxNDo0OTo1OCAyMDAzCi0tLSBnb28tY3VycmVudC9jL2cyYy9n
b28vJXN5c3RlbS5jCVdlZCBKYW4gMjEgMTE6MTQ6MzYgMjAwNAoqKioqKioqKioqKioqKioKKioq
IDE3NCwxODAgKioqKgogICAgY2hhciAgaWJ1Zls0MDk2XTsKICAgIGludCAgIGksIGo7CiAgICBp
bnQgICBwaWQ7CiEgICBjaGFyICpidltdID0geyJjYyIsICItc2hhcmVkIiwgICItZyIsICItTyIs
ICItZlBJQyIsICByYnVmLCAiLW8iLCBzb2ZpbGUsIGNmaWxlLCBOVUxMfTsKICAgIGNoYXIgKnZb
MTAwXSwgKmxwdHI7CiAgCiAgICBzcHJpbnRmKHJidWYsICItSSVzL2xpYiIsIFlQc3UoWWdvb1Nz
eXN0ZW1ZVGdvb19yb290VCkpOwotLS0gMTc0LDE4MCAtLS0tCiAgICBjaGFyICBpYnVmWzQwOTZd
OwogICAgaW50ICAgaSwgajsKICAgIGludCAgIHBpZDsKISAgIGNoYXIgKmJ2W10gPSB7ImNjIiwg
Ii1zaGFyZWQiLCAgIi1JL3Vzci9sb2NhbC9pbmNsdWRlIiwgIi1nIiwgIi1PIiwgIi1mUElDIiwg
IHJidWYsICItbyIsIHNvZmlsZSwgY2ZpbGUsIE5VTEx9OwogICAgY2hhciAqdlsxMDBdLCAqbHB0
cjsKICAKICAgIHNwcmludGYocmJ1ZiwgIi1JJXMvbGliIiwgWVBzdShZZ29vU3N5c3RlbVlUZ29v
X3Jvb3RUKSk7CmRpZmYgLWMgLXIgZ29vLTBfMTU1LWFueS1kZXYvYy9nMmMvZ29vL2JpZ251bS5j
IGdvby1jdXJyZW50L2MvZzJjL2dvby9iaWdudW0uYwoqKiogZ29vLTBfMTU1LWFueS1kZXYvYy9n
MmMvZ29vL2JpZ251bS5jCVdlZCBOb3YgMTkgMTQ6NDQ6NDMgMjAwMwotLS0gZ29vLWN1cnJlbnQv
Yy9nMmMvZ29vL2JpZ251bS5jCVdlZCBKYW4gMjEgMDk6NDQ6NDkgMjAwNAoqKioqKioqKioqKioq
KioKKioqIDc3OCw3ODQgKioqKgogIAogIAogICNpbmNsdWRlIDxnbXAuaD4KISAjaW5jbHVkZSA8
dmFsdWVzLmg+CiAgCiAgc3RhdGljIG1wX2xpbWJfdCBkdW1teV9saW1iOwogIAotLS0gNzc4LDc4
NCAtLS0tCiAgCiAgCiAgI2luY2x1ZGUgPGdtcC5oPgohICNpbmNsdWRlIDxsaW1pdHMuaD4KICAK
ICBzdGF0aWMgbXBfbGltYl90IGR1bW15X2xpbWI7CiAgCmRpZmYgLWMgLXIgZ29vLTBfMTU1LWFu
eS1kZXYvc3JjL2dvby8lc3lzdGVtLmMgZ29vLWN1cnJlbnQvc3JjL2dvby8lc3lzdGVtLmMKKioq
IGdvby0wXzE1NS1hbnktZGV2L3NyYy9nb28vJXN5c3RlbS5jCVdlZCBOb3YgMTkgMTQ6NTA6NDkg
MjAwMwotLS0gZ29vLWN1cnJlbnQvc3JjL2dvby8lc3lzdGVtLmMJV2VkIEphbiAyMSAxMToxMzoy
MCAyMDA0CioqKioqKioqKioqKioqKgoqKiogMTc0LDE4MCAqKioqCiAgICBjaGFyICBpYnVmWzQw
OTZdOwogICAgaW50ICAgaSwgajsKICAgIGludCAgIHBpZDsKISAgIGNoYXIgKmJ2W10gPSB7ImNj
IiwgIi1zaGFyZWQiLCAgIi1nIiwgIi1PIiwgIi1mUElDIiwgIHJidWYsICItbyIsIHNvZmlsZSwg
Y2ZpbGUsIE5VTEx9OwogICAgY2hhciAqdlsxMDBdLCAqbHB0cjsKICAKICAgIHNwcmludGYocmJ1
ZiwgIi1JJXMvbGliIiwgWVBzdShZZ29vU3N5c3RlbVlUZ29vX3Jvb3RUKSk7Ci0tLSAxNzQsMTgw
IC0tLS0KICAgIGNoYXIgIGlidWZbNDA5Nl07CiAgICBpbnQgICBpLCBqOwogICAgaW50ICAgcGlk
OwohICAgY2hhciAqYnZbXSA9IHsiY2MiLCAiLXNoYXJlZCIsICAiLUkvdXNyL2xvY2FsL2luY2x1
ZGUiLCAiLWciLCAiLU8iLCAiLWZQSUMiLCAgcmJ1ZiwgIi1vIiwgc29maWxlLCBjZmlsZSwgTlVM
TH07CiAgICBjaGFyICp2WzEwMF0sICpscHRyOwogIAogICAgc3ByaW50ZihyYnVmLCAiLUklcy9s
aWIiLCBZUHN1KFlnb29Tc3lzdGVtWVRnb29fcm9vdFQpKTsKZGlmZiAtYyAtciBnb28tMF8xNTUt
YW55LWRldi9zcmMvZ29vL2JpZ251bS8lZ21wLmMgZ29vLWN1cnJlbnQvc3JjL2dvby9iaWdudW0v
JWdtcC5jCioqKiBnb28tMF8xNTUtYW55LWRldi9zcmMvZ29vL2JpZ251bS8lZ21wLmMJTW9uIE9j
dCAxNCAwMjoxMzo1MyAyMDAyCi0tLSBnb28tY3VycmVudC9zcmMvZ29vL2JpZ251bS8lZ21wLmMJ
V2VkIEphbiAyMSAwOTo0NTowMCAyMDA0CioqKioqKioqKioqKioqKgoqKiogMSw1ICoqKioKICAj
aW5jbHVkZSA8Z21wLmg+CiEgI2luY2x1ZGUgPHZhbHVlcy5oPgogICNpbmNsdWRlICJncnQuaCIK
ICAKICAjZGVmaW5lIE1PRE4obmFtZSkgWWdvb1NiaWdudW1TZ21wWVAjI25hbWUKLS0tIDEsNSAt
LS0tCiAgI2luY2x1ZGUgPGdtcC5oPgohICNpbmNsdWRlIDxsaW1pdHMuaD4KICAjaW5jbHVkZSAi
Z3J0LmgiCiAgCiAgI2RlZmluZSBNT0ROKG5hbWUpIFlnb29TYmlnbnVtU2dtcFlQIyNuYW1lCmRp
ZmYgLWMgLXIgZ29vLTBfMTU1LWFueS1kZXYvc3JjL2dvby9iaWdudW0vZ21wLmdvbyBnb28tY3Vy
cmVudC9zcmMvZ29vL2JpZ251bS9nbXAuZ29vCioqKiBnb28tMF8xNTUtYW55LWRldi9zcmMvZ29v
L2JpZ251bS9nbXAuZ29vCVdlZCBOb3YgMTkgMTQ6NTA6NDkgMjAwMwotLS0gZ29vLWN1cnJlbnQv
c3JjL2dvby9iaWdudW0vZ21wLmdvbwlXZWQgSmFuIDIxIDA5OjQ1OjA2IDIwMDQKKioqKioqKioq
KioqKioqCioqKiA2LDEyICoqKioKICAKICAjewogICNpbmNsdWRlIDxnbXAuaD4KISAjaW5jbHVk
ZSA8dmFsdWVzLmg+CiAgI2luY2x1ZGUgImdydC5oIgogIAogICNkZWZpbmUgaXUodGludCkgKCgo
UElOVCkodGludCkpID4+IFRBR19CSVRTKQotLS0gNiwxMiAtLS0tCiAgCiAgI3sKICAjaW5jbHVk
ZSA8Z21wLmg+CiEgI2luY2x1ZGUgPGxpbWl0cy5oPgogICNpbmNsdWRlICJncnQuaCIKICAKICAj
ZGVmaW5lIGl1KHRpbnQpICgoKFBJTlQpKHRpbnQpKSA+PiBUQUdfQklUUykKZGlmZiAtYyAtciBn
b28tMF8xNTUtYW55LWRldi9zcmMvZ29vL2JpZ251bS5nb28gZ29vLWN1cnJlbnQvc3JjL2dvby9i
aWdudW0uZ29vCioqKiBnb28tMF8xNTUtYW55LWRldi9zcmMvZ29vL2JpZ251bS5nb28JV2VkIE5v
diAxOSAxNDo1MDo0OSAyMDAzCi0tLSBnb28tY3VycmVudC9zcmMvZ29vL2JpZ251bS5nb28JV2Vk
IEphbiAyMSAwOTo0NDo1NCAyMDA0CioqKioqKioqKioqKioqKgoqKiogNCwxMCAqKioqCiAgCiAg
I3sKICAjaW5jbHVkZSA8Z21wLmg+CiEgI2luY2x1ZGUgPHZhbHVlcy5oPgogIAogIHN0YXRpYyBt
cF9saW1iX3QgZHVtbXlfbGltYjsKICAKLS0tIDQsMTAgLS0tLQogIAogICN7CiAgI2luY2x1ZGUg
PGdtcC5oPgohICNpbmNsdWRlIDxsaW1pdHMuaD4KICAKICBzdGF0aWMgbXBfbGltYl90IGR1bW15
X2xpbWI7CiAgCg==
--sOY+qHVabE
Content-Type: text/plain; charset=us-ascii
Content-Description: .signature
Content-Transfer-Encoding: 7bit
--
T. Kurt Bond, [email protected]
--sOY+qHVabE--