My server is running FreeBSD 4.8, and apparently I don't have the 'atoll' function-so I thought I'd be clever and strip it down to atol. It worked and everything compiled (once I changed the macros in loader.c to not span multiple lines) and I went to start the server.
And I got caught in my little trick. It looks like the server is doing some sanity checks on startup-like making sure that the experience tables don't flatten off-and it is refusing to start.
So...
Has anyone succesfully compiled 1.7 on freebsd? Is there a library or something that i can get to make atoll part of my enlistment? Or is there an equivalient to atoi64/atoll for freebsd that I can go replacing this stuff with?
Compiling on freebsd 4.8
Moderator: Board moderators
Answer: Try ports.
Long Answer:
Apply this patch:
And this patch
That should work. Use the patch program.
If you dont know how to use it, google for "how to use patch".
Long Answer:
Apply this patch:
Code: Select all
--- common/exp.c.orig Sat Mar 27 06:59:25 2004
+++ common/exp.c Thu Aug 26 05:56:20 2004
@@ -190,7 +190,7 @@
exit(1);
}
- tmpexp = atoll(cp);
+ tmpexp = strtoll(cp, (char **)NULL, 10);
/* Do some sanity checking - if value is bogus, just exit because
* the table otherwise is probably in an inconsistent state
*/
Code: Select all
--- common/loader.l.orig Sat Mar 27 06:59:28 2004
+++ common/loader.l Thu Aug 26 05:54:55 2004
@@ -632,8 +632,8 @@
^maxsp{S} op->stats.maxsp = IVAL;
^grace{S} op->stats.grace = IVAL;
^maxgrace{S} op->stats.maxgrace = IVAL;
-^exp{S} op->stats.exp = atoll(yval());
-^perm_exp{S} op->perm_exp = atoll(yval());
+^exp{S} op->stats.exp = strtoll(yval(), (char **)NULL, 10);
+^perm_exp{S} op->perm_exp = strtoll(yval(), (char **)NULL, 10);
^food{S} op->stats.food = IVAL;
^dam{S} op->stats.dam = IVAL;
^wc{S} op->stats.wc = IVAL;
If you dont know how to use it, google for "how to use patch".
lordyoukai.DA
My wraith is cooler than your dragon.
My wraith is cooler than your dragon.
-
- Luser
- Posts: 10
- Joined: Sun Jun 26, 2005 7:31 pm