summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikhail Teterin <mi@FreeBSD.org>2009-12-07 22:00:26 +0000
committerMikhail Teterin <mi@FreeBSD.org>2009-12-07 22:00:26 +0000
commit59b74c075b55a2b3185c2ed3b88b778244a31f6c (patch)
tree18ac5ba557bb409b702752965b4a74f604d505dd
parentAdd libltdl dependency, that somehow missed in the previous commit (diff)
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.
Notes
Notes: svn path=/head/; revision=245353
-rw-r--r--lang/gcl/Makefile18
-rw-r--r--lang/gcl/files/patch-h_FreeBSD.defs5
-rw-r--r--lang/gcl/files/patch-h_FreeBSD.h22
-rw-r--r--lang/gcl/files/patch-h_gclincl.h.in17
-rw-r--r--lang/gcl/files/patch-unixport_makefile9
-rw-r--r--lang/gcl/files/patch-warnings63
6 files changed, 113 insertions, 21 deletions
diff --git a/lang/gcl/Makefile b/lang/gcl/Makefile
index 89ee3f65b2e9..3281bde05bdc 100644
--- a/lang/gcl/Makefile
+++ b/lang/gcl/Makefile
@@ -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>
diff --git a/lang/gcl/files/patch-h_FreeBSD.defs b/lang/gcl/files/patch-h_FreeBSD.defs
index e70cc2fe1098..a16a64c61534 100644
--- a/lang/gcl/files/patch-h_FreeBSD.defs
+++ b/lang/gcl/files/patch-h_FreeBSD.defs
@@ -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=
diff --git a/lang/gcl/files/patch-h_FreeBSD.h b/lang/gcl/files/patch-h_FreeBSD.h
index cd19f8d4630c..3c3ab6388e6f 100644
--- a/lang/gcl/files/patch-h_FreeBSD.h
+++ b/lang/gcl/files/patch-h_FreeBSD.h
@@ -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 */
+
diff --git a/lang/gcl/files/patch-h_gclincl.h.in b/lang/gcl/files/patch-h_gclincl.h.in
new file mode 100644
index 000000000000..f8a437a42ae0
--- /dev/null
+++ b/lang/gcl/files/patch-h_gclincl.h.in
@@ -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. */
diff --git a/lang/gcl/files/patch-unixport_makefile b/lang/gcl/files/patch-unixport_makefile
new file mode 100644
index 000000000000..6c610d31f55b
--- /dev/null
+++ b/lang/gcl/files/patch-unixport_makefile
@@ -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),)
diff --git a/lang/gcl/files/patch-warnings b/lang/gcl/files/patch-warnings
new file mode 100644
index 000000000000..2ad4d075a1ab
--- /dev/null
+++ b/lang/gcl/files/patch-warnings
@@ -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');