History

build: add initial NetBSD support.

Not able to generate ELF files on NetBSD yet (lacks the note and crt1.o is actually named crt0.o on NetBSD), but -run works with these extra defines: -D__lint__ -D"__symbolrename(x)=asm(#x)" -D__NetBSD__ The -D__lint__ is an ugly hack, TCC should be able to emulate GCC just fine, but it seems TCC doesn't support __builtin_va_list yet? typedef __builtin_va_list __va_list; /usr/include/sys/ansi.h:72: error: ';' expected (got "__va_list")

minux committed 12 years ago

Commit 9714d2e1 parent 469ae3a3 files · +13 −4Browse files

Unified · Split

3 files
  1. configure +1 −0
  2. lib/bcheck.c +2 −2
  3. tccrun.c +10 −2
configure+1−0
@@ -56,6 +56,7 @@ case $targetos in · 55 unmodified lines
56 DragonFly) noldl=yes;;56 DragonFly) noldl=yes;;
57 OpenBSD) noldl=yes;;57 OpenBSD) noldl=yes;;
58 FreeBSD) noldl=yes;;58 FreeBSD) noldl=yes;;
59 NetBSD) noldl=yes;;
59 *) ;;60 *) ;;
60esac61esac
61 62
lib/bcheck.c+2−2
@@ -22,7 +22,7 @@ · 21 unmodified lines
22#include <stdarg.h>22#include <stdarg.h>
23#include <string.h>23#include <string.h>
24#if !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) \24#if !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) \
25 && !defined(__DragonFly__) && !defined(__OpenBSD__)25 && !defined(__DragonFly__) && !defined(__OpenBSD__) && !defined(__NetBSD__)
26#include <malloc.h>26#include <malloc.h>
27#endif27#endif
28#if !defined(_WIN32)28#if !defined(_WIN32)
@@ -41,7 +41,7 @@ · 12 unmodified lines
41 41
42#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \42#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) \
43 || defined(__DragonFly__) || defined(__dietlibc__) \43 || defined(__DragonFly__) || defined(__dietlibc__) \
44 || defined(__UCLIBC__) || defined(__OpenBSD__) \44 || defined(__UCLIBC__) || defined(__OpenBSD__) || defined(__NetBSD__) \
45 || defined(_WIN32) || defined(TCC_UCLIBC)45 || defined(_WIN32) || defined(TCC_UCLIBC)
46#warning Bound checking does not support malloc (etc.) in this environment.46#warning Bound checking does not support malloc (etc.) in this environment.
47#undef CONFIG_TCC_MALLOC_HOOKS47#undef CONFIG_TCC_MALLOC_HOOKS
tccrun.c+10−2
@@ -486,10 +486,12 @@ static int rt_get_caller_pc(addr_t *paddr, ucontext_t *uc, int level) · 485 unmodified lines
486 if (level == 0) {486 if (level == 0) {
487#if defined(__APPLE__)487#if defined(__APPLE__)
488 *paddr = uc->uc_mcontext->__ss.__eip;488 *paddr = uc->uc_mcontext->__ss.__eip;
489#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)489#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
490 *paddr = uc->uc_mcontext.mc_eip;490 *paddr = uc->uc_mcontext.mc_eip;
491#elif defined(__dietlibc__)491#elif defined(__dietlibc__)
492 *paddr = uc->uc_mcontext.eip;492 *paddr = uc->uc_mcontext.eip;
493#elif defined(__NetBSD__)
494 *paddr = uc->uc_mcontext.__gregs[_REG_EIP];
493#else495#else
494 *paddr = uc->uc_mcontext.gregs[REG_EIP];496 *paddr = uc->uc_mcontext.gregs[REG_EIP];
495#endif497#endif
@@ -497,10 +499,12 @@ static int rt_get_caller_pc(addr_t *paddr, ucontext_t *uc, int level) · 1 unmodified line
497 } else {499 } else {
498#if defined(__APPLE__)500#if defined(__APPLE__)
499 fp = uc->uc_mcontext->__ss.__ebp;501 fp = uc->uc_mcontext->__ss.__ebp;
500#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)502#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
501 fp = uc->uc_mcontext.mc_ebp;503 fp = uc->uc_mcontext.mc_ebp;
502#elif defined(__dietlibc__)504#elif defined(__dietlibc__)
503 fp = uc->uc_mcontext.ebp;505 fp = uc->uc_mcontext.ebp;
506#elif defined(__NetBSD__)
507 fp = uc->uc_mcontext.__gregs[_REG_EBP];
504#else508#else
505 fp = uc->uc_mcontext.gregs[REG_EBP];509 fp = uc->uc_mcontext.gregs[REG_EBP];
506#endif510#endif
@@ -530,6 +534,8 @@ static int rt_get_caller_pc(addr_t *paddr, ucontext_t *uc, int level) · 23 unmodified lines
530 *paddr = uc->uc_mcontext->__ss.__rip;534 *paddr = uc->uc_mcontext->__ss.__rip;
531#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)535#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
532 *paddr = uc->uc_mcontext.mc_rip;536 *paddr = uc->uc_mcontext.mc_rip;
537#elif defined(__NetBSD__)
538 *paddr = uc->uc_mcontext.__gregs[_REG_RIP];
533#else539#else
534 *paddr = uc->uc_mcontext.gregs[REG_RIP];540 *paddr = uc->uc_mcontext.gregs[REG_RIP];
535#endif541#endif
@@ -539,6 +545,8 @@ static int rt_get_caller_pc(addr_t *paddr, ucontext_t *uc, int level) · 3 unmodified lines
539 fp = uc->uc_mcontext->__ss.__rbp;545 fp = uc->uc_mcontext->__ss.__rbp;
540#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)546#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
541 fp = uc->uc_mcontext.mc_rbp;547 fp = uc->uc_mcontext.mc_rbp;
548#elif defined(__NetBSD__)
549 fp = uc->uc_mcontext.__gregs[_REG_RBP];
542#else550#else
543 fp = uc->uc_mcontext.gregs[REG_RBP];551 fp = uc->uc_mcontext.gregs[REG_RBP];
544#endif552#endif

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t