mirror of
https://github.com/yann64/haikuports.git
synced 2026-05-05 14:38:51 +02:00
add recipe for tcc.
This commit is contained in:
67
dev-lang/tcc/patches/tcc-0.9.26.patchset
Normal file
67
dev-lang/tcc/patches/tcc-0.9.26.patchset
Normal file
@@ -0,0 +1,67 @@
|
||||
From 33b1dca76db5ab527a0cb441dd70b27c339dafca Mon Sep 17 00:00:00 2001
|
||||
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
|
||||
Date: Sat, 9 Aug 2014 18:44:13 +0200
|
||||
Subject: Add Haiku support.
|
||||
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 705b585..bcf562e 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -36,12 +36,12 @@ ifdef CONFIG_WIN64
|
||||
CONFIG_WIN32=yes
|
||||
endif
|
||||
|
||||
-ifndef CONFIG_WIN32
|
||||
-LIBS=-lm
|
||||
-ifndef CONFIG_NOLDL
|
||||
-LIBS+=-ldl
|
||||
-endif
|
||||
-endif
|
||||
+#ifndef CONFIG_WIN32
|
||||
+#LIBS=-lm
|
||||
+#ifndef CONFIG_NOLDL
|
||||
+#LIBS+=-ldl
|
||||
+#endif
|
||||
+#endif
|
||||
|
||||
# make libtcc as static or dynamic library?
|
||||
ifdef DISABLE_STATIC
|
||||
diff --git a/lib/bcheck.c b/lib/bcheck.c
|
||||
index 54124b9..7af69ff 100644
|
||||
--- a/lib/bcheck.c
|
||||
+++ b/lib/bcheck.c
|
||||
@@ -42,7 +42,7 @@
|
||||
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \
|
||||
|| defined(__DragonFly__) || defined(__dietlibc__) \
|
||||
|| defined(__UCLIBC__) || defined(__OpenBSD__) \
|
||||
- || defined(_WIN32) || defined(TCC_UCLIBC)
|
||||
+ || defined(_WIN32) || defined(TCC_UCLIBC) || defined(__HAIKU__)
|
||||
#warning Bound checking does not support malloc (etc.) in this environment.
|
||||
#undef CONFIG_TCC_MALLOC_HOOKS
|
||||
#undef HAVE_MEMALIGN
|
||||
diff --git a/tccrun.c b/tccrun.c
|
||||
index 50178a8..c67bebb 100644
|
||||
--- a/tccrun.c
|
||||
+++ b/tccrun.c
|
||||
@@ -481,7 +481,7 @@ static int rt_get_caller_pc(addr_t *paddr, ucontext_t *uc, int level)
|
||||
*paddr = uc->uc_mcontext->__ss.__eip;
|
||||
#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
|
||||
*paddr = uc->uc_mcontext.mc_eip;
|
||||
-#elif defined(__dietlibc__)
|
||||
+#elif defined(__dietlibc__) || defined(__HAIKU__)
|
||||
*paddr = uc->uc_mcontext.eip;
|
||||
#else
|
||||
*paddr = uc->uc_mcontext.gregs[REG_EIP];
|
||||
@@ -492,7 +492,7 @@ static int rt_get_caller_pc(addr_t *paddr, ucontext_t *uc, int level)
|
||||
fp = uc->uc_mcontext->__ss.__ebp;
|
||||
#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
|
||||
fp = uc->uc_mcontext.mc_ebp;
|
||||
-#elif defined(__dietlibc__)
|
||||
+#elif defined(__dietlibc__) || defined(__HAIKU__)
|
||||
fp = uc->uc_mcontext.ebp;
|
||||
#else
|
||||
fp = uc->uc_mcontext.gregs[REG_EBP];
|
||||
--
|
||||
1.8.3.4
|
||||
|
||||
65
dev-lang/tcc/tcc-0.9.26.recipe
Normal file
65
dev-lang/tcc/tcc-0.9.26.recipe
Normal file
@@ -0,0 +1,65 @@
|
||||
SUMMARY="A small and fast C compiler"
|
||||
DESCRIPTION="* SMALL! You can compile and execute C code everywhere, for \
|
||||
example on rescue disks (about 100KB for x86 TCC executable, including C \
|
||||
preprocessor, C compiler, assembler and linker).
|
||||
* FAST! tcc generates x86 code. No byte code overhead. Compile, assemble and \
|
||||
link several times faster than GCC.
|
||||
* 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 and GNU-like assembler 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.
|
||||
* With libtcc, you can use TCC as a backend for dynamic code generation.
|
||||
"
|
||||
SRC_URI="http://download.savannah.gnu.org/releases/tinycc/tcc-0.9.26.tar.bz2"
|
||||
CHECKSUM_SHA256="521e701ae436c302545c3f973a9c9b7e2694769c71d9be10f70a2460705b6d71"
|
||||
PATCHES="tcc-$portVersion.patchset"
|
||||
|
||||
HOMEPAGE="http://bellard.org/tcc/"
|
||||
REVISION="1"
|
||||
ARCHITECTURES="x86_gcc2"
|
||||
COPYRIGHT="2001-2014 Fabrice Bellard"
|
||||
LICENSE="GNU LGPL v2"
|
||||
|
||||
PROVIDES="
|
||||
tcc = $portVersion
|
||||
cmd:arm_eabi_tcc
|
||||
cmd:arm_fpa_ld_tcc
|
||||
cmd:arm_fpa_tcc
|
||||
cmd:arm_vfp_tcc
|
||||
cmd:c67_tcc
|
||||
cmd:i386_win32_tcc
|
||||
cmd:tcc
|
||||
cmd:x86_64_tcc
|
||||
cmd:x86_64_win32_tcc
|
||||
"
|
||||
|
||||
REQUIRES="
|
||||
haiku >= $haikuVersion
|
||||
"
|
||||
|
||||
BUILD_PREREQUIRES="
|
||||
haiku_devel >= $haikuVersion
|
||||
cmd:gcc
|
||||
cmd:make
|
||||
"
|
||||
|
||||
PROVIDES_devel="
|
||||
devel:libtcc
|
||||
"
|
||||
|
||||
BUILD()
|
||||
{
|
||||
runConfigure ./configure --enable-cross
|
||||
make $jobArgs
|
||||
}
|
||||
|
||||
INSTALL()
|
||||
{
|
||||
make install
|
||||
prepareInstalledDevelLib libtcc
|
||||
packageEntries devel $developDir
|
||||
}
|
||||
Reference in New Issue
Block a user