Initial import of tcc:
DESCR: ====== Tiny C Compiler - C Scripting Everywhere - The Smallest ANSI C compiler ----------------------------------------------------------------------- Features: -------- - SMALL! You can compile and execute C code everywhere, for example on rescue disks. - FAST! tcc generates optimized x86 code. No byte code overhead. Compile, assemble and link about 7 times faster than 'gcc -O0'. - UNLIMITED! Any C dynamic library can be used directly. TCC is heading torward full ISOC99 compliance. TCC can of course compile itself. - SAFE! tcc includes an optional memory and bound checker. Bound checked code can be mixed freely with standard code. - Compile and execute C source directly. No linking or assembly necessary. Full C preprocessor included. - C script supported : just add '#!/usr/local/bin/tcc -run' at the first line of your C source, and execute it directly from the command line. ** TODO ** * Original pkg seems to work under Linux and FreeBSD I patch a little bit FreeBSD #ifs and compiles under NetBSD, but doesn't works fine. * Could be a freebsd bug also, I doesn't test it :/
This commit is contained in:
parent
0d69159255
commit
0a81804500
9 changed files with 202 additions and 0 deletions
19
tcc/DESCR
Normal file
19
tcc/DESCR
Normal file
|
@ -0,0 +1,19 @@
|
|||
Tiny C Compiler - C Scripting Everywhere - The Smallest ANSI C compiler
|
||||
-----------------------------------------------------------------------
|
||||
Features:
|
||||
--------
|
||||
- SMALL! You can compile and execute C code everywhere, for example on
|
||||
rescue disks.
|
||||
- FAST! tcc generates optimized x86 code. No byte code
|
||||
overhead. Compile, assemble and link about 7 times faster than 'gcc
|
||||
-O0'.
|
||||
- UNLIMITED! Any C dynamic library can be used directly. TCC is
|
||||
heading torward full ISOC99 compliance. TCC can of course compile
|
||||
itself.
|
||||
- SAFE! tcc includes an optional memory and bound checker. Bound
|
||||
checked code can be mixed freely with standard code.
|
||||
- Compile and execute C source directly. No linking or assembly
|
||||
necessary. Full C preprocessor included.
|
||||
- C script supported : just add '#!/usr/local/bin/tcc -run' at the first
|
||||
line of your C source, and execute it directly from the command
|
||||
line.
|
18
tcc/Makefile
Normal file
18
tcc/Makefile
Normal file
|
@ -0,0 +1,18 @@
|
|||
# $NetBSD: Makefile,v 1.1.1.1 2003/07/27 02:41:02 poppnk Exp $
|
||||
#
|
||||
|
||||
DISTNAME= tcc-0.9.19
|
||||
CATEGORIES= lang
|
||||
MASTER_SITES= http://fabrice.bellard.free.fr/tcc/
|
||||
|
||||
MAINTAINER= pancake@phreaker.net
|
||||
HOMEPAGE= http://www.tinycc.org
|
||||
COMMENT= The Smallest ANSI C compiler
|
||||
|
||||
USE_GMAKE= yes
|
||||
GNU_CONFIGURE= yes
|
||||
USE_BUILDLINK2= yes
|
||||
|
||||
ONLY_FOR_PLATFORM= *-*-i386
|
||||
|
||||
.include "../../mk/bsd.pkg.mk"
|
15
tcc/PLIST
Normal file
15
tcc/PLIST
Normal file
|
@ -0,0 +1,15 @@
|
|||
@comment $NetBSD: PLIST,v 1.1.1.1 2003/07/27 02:41:03 poppnk Exp $
|
||||
bin/tcc
|
||||
include/libtcc.h
|
||||
lib/libtcc.a
|
||||
lib/tcc/bcheck.o
|
||||
lib/tcc/include/float.h
|
||||
lib/tcc/include/stdarg.h
|
||||
lib/tcc/include/stdbool.h
|
||||
lib/tcc/include/stddef.h
|
||||
lib/tcc/include/tcclib.h
|
||||
lib/tcc/include/varargs.h
|
||||
lib/tcc/libtcc1.a
|
||||
man/man1/tcc.1
|
||||
@dirrm lib/tcc/include
|
||||
@dirrm lib/tcc
|
4
tcc/TODO
Normal file
4
tcc/TODO
Normal file
|
@ -0,0 +1,4 @@
|
|||
* Original pkg seems to work under Linux and FreeBSD
|
||||
I patch a little bit FreeBSD #ifs and compiles under
|
||||
NetBSD, but doesn't works fine.
|
||||
* Could be a freebsd bug also, I doesn't test it :/
|
8
tcc/distinfo
Normal file
8
tcc/distinfo
Normal file
|
@ -0,0 +1,8 @@
|
|||
$NetBSD: distinfo,v 1.1.1.1 2003/07/27 02:41:03 poppnk Exp $
|
||||
|
||||
SHA1 (tcc-0.9.19.tar.gz) = b0eeff0059253bb5f447c7c146978d9cdff368dd
|
||||
Size (tcc-0.9.19.tar.gz) = 197848 bytes
|
||||
SHA1 (patch-aa) = 3f2383c1764c5b2694849cdfc18f53ea17c3c7d6
|
||||
SHA1 (patch-ab) = eef3c23a19f195f8bfea1f6b4b1c9f2a789fa2a5
|
||||
SHA1 (patch-ac) = fd553aee2bdd172903bf35da5a387765d637326e
|
||||
SHA1 (patch-ad) = 8c6c97bacffe9374a9e33d3566f8f37430120af0
|
69
tcc/patches/patch-aa
Normal file
69
tcc/patches/patch-aa
Normal file
|
@ -0,0 +1,69 @@
|
|||
$NetBSD: patch-aa,v 1.1.1.1 2003/07/27 02:41:03 poppnk Exp $
|
||||
|
||||
--- tcc.c.orig 2003-05-24 18:30:29.000000000 +0000
|
||||
+++ tcc.c 2003-07-26 21:58:09.000000000 +0000
|
||||
@@ -2926,6 +2926,22 @@
|
||||
}
|
||||
}
|
||||
|
||||
+#if __NetBSD__
|
||||
+float strtof(const char *nptr, char **endptr)
|
||||
+{
|
||||
+ float n=0;
|
||||
+ sscanf(nptr,"%f",&n);
|
||||
+ return n;
|
||||
+}
|
||||
+
|
||||
+long double strtold(const char *nptr, char **endptr)
|
||||
+{
|
||||
+ long double n=0;
|
||||
+ sscanf(nptr,"%Lf",&n);
|
||||
+ return n;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
/* parse number in null terminated string 'p' and return it in the
|
||||
current token */
|
||||
void parse_number(const char *p)
|
||||
@@ -8954,9 +8970,15 @@
|
||||
|
||||
/* fix for glibc 2.1 */
|
||||
#ifndef REG_EIP
|
||||
+#include <sys/param.h>
|
||||
+#if BSD
|
||||
+#define REG_EIP _REG_EIP
|
||||
+#define REG_EBP _REG_EBP
|
||||
+#else
|
||||
#define REG_EIP EIP
|
||||
#define REG_EBP EBP
|
||||
#endif
|
||||
+#endif
|
||||
|
||||
/* return the PC at frame level 'level'. Return non zero if not found */
|
||||
static int rt_get_caller_pc(unsigned long *paddr,
|
||||
@@ -8969,14 +8991,14 @@
|
||||
#ifdef __FreeBSD__
|
||||
*paddr = uc->uc_mcontext.mc_eip;
|
||||
#else
|
||||
- *paddr = uc->uc_mcontext.gregs[REG_EIP];
|
||||
+ *paddr = uc->uc_mcontext.__gregs[REG_EIP];
|
||||
#endif
|
||||
return 0;
|
||||
} else {
|
||||
#ifdef __FreeBSD__
|
||||
fp = uc->uc_mcontext.mc_ebp;
|
||||
#else
|
||||
- fp = uc->uc_mcontext.gregs[REG_EBP];
|
||||
+ fp = uc->uc_mcontext.__gregs[REG_EBP];
|
||||
#endif
|
||||
for(i=1;i<level;i++) {
|
||||
/* XXX: check address validity with program info */
|
||||
@@ -9108,7 +9130,7 @@
|
||||
struct sigaction sigact;
|
||||
/* install TCC signal handlers to print debug info on fatal
|
||||
runtime errors */
|
||||
- sigact.sa_flags = SA_SIGINFO | SA_RESETHAND;
|
||||
+ sigact.sa_flags = SA_RESETHAND;
|
||||
sigact.sa_sigaction = sig_error;
|
||||
sigemptyset(&sigact.sa_mask);
|
||||
sigaction(SIGFPE, &sigact, NULL);
|
13
tcc/patches/patch-ab
Normal file
13
tcc/patches/patch-ab
Normal file
|
@ -0,0 +1,13 @@
|
|||
$NetBSD: patch-ab,v 1.1.1.1 2003/07/27 02:41:03 poppnk Exp $
|
||||
|
||||
--- tccelf.c.orig 2003-07-26 21:40:06.000000000 +0000
|
||||
+++ tccelf.c 2003-07-26 21:40:16.000000000 +0000
|
||||
@@ -378,7 +378,7 @@
|
||||
|
||||
static void *resolve_sym(const char *sym)
|
||||
{
|
||||
- return dlsym(RTLD_DEFAULT, sym);
|
||||
+ return dlsym(RTLD_LAZY, sym);
|
||||
}
|
||||
|
||||
/* relocate symbol table, resolve undefined symbols if do_resolve is
|
26
tcc/patches/patch-ac
Normal file
26
tcc/patches/patch-ac
Normal file
|
@ -0,0 +1,26 @@
|
|||
$NetBSD: patch-ac,v 1.1.1.1 2003/07/27 02:41:04 poppnk Exp $
|
||||
|
||||
--- Makefile.orig 2003-05-24 18:30:29.000000000 +0000
|
||||
+++ Makefile 2003-07-27 04:32:14.000000000 +0000
|
||||
@@ -2,9 +2,11 @@
|
||||
# Tiny C Compiler Makefile
|
||||
#
|
||||
include config.mak
|
||||
+OS=\`uname\`
|
||||
|
||||
CFLAGS=-O2 -g -Wall
|
||||
-LIBS=-ldl
|
||||
+LIBS=`if [ ! "$(OS)" = "NetBSD" ]; then echo "-ldl"; fi`
|
||||
+
|
||||
CFLAGS_P=$(CFLAGS) -pg -static -DCONFIG_TCC_STATIC
|
||||
LIBS_P=
|
||||
|
||||
@@ -167,7 +169,7 @@
|
||||
$(AR) rcs $@ $^
|
||||
|
||||
libtcc_test: libtcc_test.c libtcc.a
|
||||
- $(CC) $(CFLAGS) -I. -o $@ $< -L. -ltcc -ldl
|
||||
+ $(CC) $(CFLAGS) -I. -o $@ $< -L. -ltcc $(LIBS)
|
||||
|
||||
libtest: libtcc_test
|
||||
./libtcc_test
|
30
tcc/patches/patch-ad
Normal file
30
tcc/patches/patch-ad
Normal file
|
@ -0,0 +1,30 @@
|
|||
$NetBSD: patch-ad,v 1.1.1.1 2003/07/27 02:41:04 poppnk Exp $
|
||||
|
||||
--- bcheck.c.orig 2003-07-27 04:13:21.000000000 +0000
|
||||
+++ bcheck.c 2003-07-27 04:14:34.000000000 +0000
|
||||
@@ -21,6 +21,7 @@
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <string.h>
|
||||
+#include <sys/param.h>
|
||||
#ifndef __FreeBSD__
|
||||
#include <malloc.h>
|
||||
#endif
|
||||
@@ -36,7 +37,7 @@
|
||||
|
||||
#define HAVE_MEMALIGN
|
||||
|
||||
-#ifdef __FreeBSD__
|
||||
+#ifdef BSD
|
||||
#warning Bound checking not fully supported on FreeBSD
|
||||
#undef CONFIG_TCC_MALLOC_HOOKS
|
||||
#undef HAVE_MEMALIGN
|
||||
@@ -782,7 +783,7 @@
|
||||
{
|
||||
void *ptr;
|
||||
size = size * nmemb;
|
||||
- ptr = __bound_malloc(size);
|
||||
+ ptr = __bound_malloc(size,0);
|
||||
if (!ptr)
|
||||
return NULL;
|
||||
memset(ptr, 0, size);
|
Loading…
Reference in a new issue