Let the healing begin by unbreaking. The main thing was to set DBEGIN to

0 as seems to happen with the upcoming version 2.6.8 (not released yet).

Add minor patches to ensure clean build with `-Wall -Werror',
proper definition of HZ, etc.

Instead of explicitly specifying LIB_DEPENDS, convert to USE_TK. Leave the
TCL_VER at 8.4 for now.

Gentoo builds theirs for various platforms -- not just i386 -- so that would
be the next step.
This commit is contained in:
Mikhail Teterin 2009-12-07 22:00:26 +00:00
parent 47246be360
commit 59b74c075b
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=245353
6 changed files with 113 additions and 21 deletions

View file

@ -15,23 +15,21 @@ MASTER_SITE_SUBDIR= gcl
MAINTAINER= ports@FreeBSD.org
COMMENT= GNU Common Lisp
LIB_DEPENDS= tk84.1:${PORTSDIR}/x11-toolkits/tk84 \
gmp.8:${PORTSDIR}/math/libgmp4
LIB_DEPENDS= gmp:${PORTSDIR}/math/libgmp4
ONLY_FOR_ARCHS= i386
DEPRECATED= fails to build on FreeBSD 7.x
EXPIRATION_DATE= 2010-01-12
USE_TK= 84
GNU_CONFIGURE= yes
USE_GMAKE= yes
USE_XORG= x11
CONFIGURE_ARGS=--prefix=${PREFIX} \
--enable-ansi \
--enable-debug \
--enable-machine=FreeBSD \
--enable-info=${PREFIX}/info \
--enable-tkconfig=${LOCALBASE}/lib/tk8.4 \
--enable-tclconfig=${LOCALBASE}/lib/tcl8.4 \
--enable-tkconfig=${LOCALBASE}/lib/tk${TCL_VER} \
--enable-tclconfig=${LOCALBASE}/lib/tcl${TCL_VER} \
--with-x \
--disable-dlopen \
--disable-dynsysbfd \
@ -47,14 +45,10 @@ PLIST_SUB= GCL_VER=${PORTVERSION}
.include <bsd.port.pre.mk>
.if ${OSVERSION} >= 700042
BROKEN= Gcl compiled with gcc42 dumps core
.endif
pre-configure:
${SED} -i '' \
-e 's|@@CFLAGS@@|${CFLAGS} -I${LOCALBASE}/include|' \
-e 's|@@LOCALLIBS@@|-L${LOCALBASE}/lib -lgmp -lm -lreadline|' \
-e 's|@@LOCALLIBS@@|-lreadline -lm -L${LOCALBASE}/lib -lgmp|' \
${WRKSRC}/h/FreeBSD.defs
.include <bsd.port.post.mk>

View file

@ -5,7 +5,7 @@ retrieving revision 1.2.6.1.4.1
diff -u -d -r1.2.6.1.4.1 FreeBSD.defs
--- h/FreeBSD.defs 15 Jul 2004 16:28:43 -0000 1.2.6.1.4.1
+++ h/FreeBSD.defs 18 Aug 2004 16:29:43 -0000
@@ -1,12 +1,16 @@
@@ -1,12 +1,17 @@
-# Machine dependent makefile definitions for intel 386,486 running 386bsd
+# Machine dependent makefile definitions for 386bsd
# Ported to FreeBSD 2.0 by Jeffrey Hsu (hsu@freebsd.org).
@ -20,7 +20,8 @@ diff -u -d -r1.2.6.1.4.1 FreeBSD.defs
-#LIBS = -lm -L/usr/local/lib
+#CFLAGS = @@.CFLAGS@@
+CFLAGS = @@CFLAGS@@
+CFLAGS += -fomit-frame-pointer -fsigned-char -DVOL=volatile -I$(GCLDIR)/o -I${prefix}/include
+CFLAGS += -fomit-frame-pointer -fsigned-char -DVOL=volatile -I$(GCLDIR)/o -I${prefix}/include -Wall -Werror
+CFLAGS += -UDBEGIN -DDBEGIN=0
+#LIBS = @@.LOCALLIBS@@
+LIBS = @@LOCALLIBS@@
#ODIR_DEBUG=

View file

@ -1,10 +1,5 @@
Index: h/FreeBSD.h
===================================================================
RCS file: /cvsroot/gcl/gcl/h/FreeBSD.h,v
retrieving revision 1.2.6.2.2.2
diff -u -d -r1.2.6.2.2.2 FreeBSD.h
--- h/FreeBSD.h 12 Jun 2004 16:28:15 -0000 1.2.6.2.2.2
+++ h/FreeBSD.h 18 Aug 2004 16:29:43 -0000
--- h/FreeBSD.h 2004-06-12 12:28:15.000000000 -0400
+++ h/FreeBSD.h 2009-12-07 12:07:37.000000000 -0500
@@ -32,6 +32,11 @@
#endif
#include "linux.h"
@ -17,3 +12,16 @@ diff -u -d -r1.2.6.2.2.2 FreeBSD.h
#if defined(__i386__)
#define I386
#endif
@@ -68,7 +73,11 @@
#ifdef CLOCKS_PER_SEC
#define HZ CLOCKS_PER_SEC
#else
-#define HZ 128
+# ifdef _SC_CLK_TCK /* Define HZ properly: */
+# define HZ sysconf(_SC_CLK_TCK)
+# elif !defined(HZ)
+# define HZ 128
+# endif
#endif
/* #define ss_base ss_sp */

View file

@ -0,0 +1,17 @@
--- h/gclincl.h.in 2005-01-15 14:17:18.000000000 -0500
+++ h/gclincl.h.in 2009-12-07 12:11:34.000000000 -0500
@@ -10,7 +10,5 @@
#undef X_DISPLAY_MISSING
-#define DBEGIN 0
-
-#define MAXPAGE 128*1024
+#define MAXPAGE (128*1024*(SIZEOF_LONG>>2)/(1<<(PAGEWIDTH-12)))
#define VSSIZE 128*1024
#define BDSSIZE 2*1024
@@ -205,5 +203,4 @@
#undef HOST_SYSTEM
#undef GCL_GPROF_START
-#undef HZ
/* The number of bytes in a long. */

View file

@ -0,0 +1,9 @@
--- unixport/makefile 2005-01-15 11:34:45.000000000 -0500
+++ unixport/makefile 2009-12-07 12:35:23.000000000 -0500
@@ -15,5 +15,5 @@
LD_LIBS_PRE=$(FIRST_FILE) $(addprefix -u ,$(PATCHED_SYMBOLS))
-LD_LIBS_POST=$(LIBS) $(LIBC) -lgclp $(LAST_FILE)
+LD_LIBS_POST=-lgclp $(LIBS) $(LAST_FILE)
ifeq ($(ARRS),)

View file

@ -0,0 +1,63 @@
--- o/plttest.c 2004-03-19 21:08:12.000000000 -0500
+++ o/plttest.c 2009-12-07 11:55:41.000000000 -0500
@@ -20,24 +20,24 @@
setjmp(env);
- cos(d);
- sin(d);
- tan(d);
-
- acos(d);
- asin(d);
- atan(d);
-
- cosh(d);
- sinh(d);
- tanh(d);
+ (void)cos(d);
+ (void)sin(d);
+ (void)tan(d);
+
+ (void)acos(d);
+ (void)asin(d);
+ (void)atan(d);
+
+ (void)cosh(d);
+ (void)sinh(d);
+ (void)tanh(d);
#ifndef _WIN32
- acosh(d);
- asinh(d);
- atanh(d);
+ (void)acosh(d);
+ (void)asinh(d);
+ (void)atanh(d);
#endif
- exp(d);
- log(d);
+ (void)exp(d);
+ (void)log(d);
return 0;
--- o/run_process.c 2005-07-18 13:07:24.000000000 -0400
+++ o/run_process.c 2009-12-07 12:18:25.000000000 -0500
@@ -453,5 +453,5 @@
check_arg(2);
vs_base[0] = make_socket_stream(vs_base[0], vs_base[1]);
- vs_pop;
+ (void)vs_pop;
}
--- gcl-tk/tkMain.c 2003-09-26 09:46:54.000000000 -0400
+++ gcl-tk/tkMain.c 2009-12-07 15:04:38.000000000 -0500
@@ -496,6 +496,6 @@
|| code)
{
- unsigned char buf[4];
- unsigned char *p = buf;
+ char buf[4];
+ char *p = buf;
/*header */
*p++ = (code ? '1' : '0');