summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarald van Dijk <truedfx@gentoo.org>2007-05-12 11:27:30 +0000
committerHarald van Dijk <truedfx@gentoo.org>2007-05-12 11:27:30 +0000
commit13a647909121a375bbb3a3c11ff7d3f615fe0aa6 (patch)
treed92e4132df827301ec778443162004f86b60a5ca /dev-lang/tcc
parentVersion bump. (diff)
downloadgentoo-2-13a647909121a375bbb3a3c11ff7d3f615fe0aa6.tar.gz
gentoo-2-13a647909121a375bbb3a3c11ff7d3f615fe0aa6.tar.bz2
gentoo-2-13a647909121a375bbb3a3c11ff7d3f615fe0aa6.zip
Fix crash on nxbit-enabled CPUs (#178168), remove older versions
(Portage version: 2.1.2.7)
Diffstat (limited to 'dev-lang/tcc')
-rw-r--r--dev-lang/tcc/ChangeLog8
-rw-r--r--dev-lang/tcc/files/digest-tcc-0.9.193
-rw-r--r--dev-lang/tcc/files/digest-tcc-0.9.203
-rw-r--r--dev-lang/tcc/files/digest-tcc-0.9.223
-rw-r--r--dev-lang/tcc/files/tcc-0.9.20-gcc34.patch75
-rw-r--r--dev-lang/tcc/files/tcc-0.9.23-nxbit.patch68
-rw-r--r--dev-lang/tcc/tcc-0.9.19.ebuild45
-rw-r--r--dev-lang/tcc/tcc-0.9.20.ebuild54
-rw-r--r--dev-lang/tcc/tcc-0.9.22.ebuild46
-rw-r--r--dev-lang/tcc/tcc-0.9.23-r1.ebuild3
10 files changed, 77 insertions, 231 deletions
diff --git a/dev-lang/tcc/ChangeLog b/dev-lang/tcc/ChangeLog
index da22b58a9611..6d2e427f2dd6 100644
--- a/dev-lang/tcc/ChangeLog
+++ b/dev-lang/tcc/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for dev-lang/tcc
# Copyright 2002-2007 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/tcc/ChangeLog,v 1.25 2007/04/27 11:25:23 armin76 Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/tcc/ChangeLog,v 1.26 2007/05/12 11:27:30 truedfx Exp $
+
+ 12 May 2007; Harald van Dijk <truedfx@gentoo.org>
+ -files/tcc-0.9.20-gcc34.patch, +files/tcc-0.9.23-nxbit.patch,
+ -tcc-0.9.19.ebuild, -tcc-0.9.20.ebuild, -tcc-0.9.22.ebuild,
+ tcc-0.9.23-r1.ebuild:
+ Fix crash on nxbit-enabled CPUs (#178168), remove older versions
27 Apr 2007; Raúl Porcel <armin76@gentoo.org> tcc-0.9.23-r1.ebuild:
x86 stable wrt #176070
diff --git a/dev-lang/tcc/files/digest-tcc-0.9.19 b/dev-lang/tcc/files/digest-tcc-0.9.19
deleted file mode 100644
index f7fa2a0096bd..000000000000
--- a/dev-lang/tcc/files/digest-tcc-0.9.19
+++ /dev/null
@@ -1,3 +0,0 @@
-MD5 d911db33292021af32349f5afc6afb4e tcc-0.9.19.tar.gz 197848
-RMD160 8730dc2502b2c6a3468695292454b04fc1339e8a tcc-0.9.19.tar.gz 197848
-SHA256 e33b9346cc5e278e25cea1bc6736242236d5fd4e39629d5e2925ee80e327bbe5 tcc-0.9.19.tar.gz 197848
diff --git a/dev-lang/tcc/files/digest-tcc-0.9.20 b/dev-lang/tcc/files/digest-tcc-0.9.20
deleted file mode 100644
index f52446bec214..000000000000
--- a/dev-lang/tcc/files/digest-tcc-0.9.20
+++ /dev/null
@@ -1,3 +0,0 @@
-MD5 c883b88e874a9bb9163eb14dc43b178c tcc-0.9.20.tar.gz 199391
-RMD160 3418804c23f692f9cd80889b6ed886ea20ff10c3 tcc-0.9.20.tar.gz 199391
-SHA256 d74bd4230b7f9895890976b8a3fbcab960817fc18c16b4a83eda293a260c742f tcc-0.9.20.tar.gz 199391
diff --git a/dev-lang/tcc/files/digest-tcc-0.9.22 b/dev-lang/tcc/files/digest-tcc-0.9.22
deleted file mode 100644
index 9025377b6308..000000000000
--- a/dev-lang/tcc/files/digest-tcc-0.9.22
+++ /dev/null
@@ -1,3 +0,0 @@
-MD5 62869f2cbf1d8a9b4ea1603311426228 tcc-0.9.22.tar.gz 237210
-RMD160 20fd93561c5a86f0676b2e38b632b4a139a2a25d tcc-0.9.22.tar.gz 237210
-SHA256 00efbc13462d6df07ef9caeeb8a39fbce1ca985e4721f93fb477cdc4e8859af1 tcc-0.9.22.tar.gz 237210
diff --git a/dev-lang/tcc/files/tcc-0.9.20-gcc34.patch b/dev-lang/tcc/files/tcc-0.9.20-gcc34.patch
deleted file mode 100644
index a703f5a4d105..000000000000
--- a/dev-lang/tcc/files/tcc-0.9.20-gcc34.patch
+++ /dev/null
@@ -1,75 +0,0 @@
---- tcc-0.9.20.orig/bcheck.c
-+++ tcc-0.9.20/bcheck.c
-@@ -76,7 +76,9 @@
-
- /* currently, tcc cannot compile that because we use unsupported GNU C
- extensions */
--#if !defined(__TINYC__)
-+#if defined(__TINYC__)
-+#define __attribute__(ignore)
-+#endif
- void *__bound_ptr_add(void *p, int offset) __attribute__((regparm(2)));
- void *__bound_ptr_indir1(void *p, int offset) __attribute__((regparm(2)));
- void *__bound_ptr_indir2(void *p, int offset) __attribute__((regparm(2)));
-@@ -86,7 +88,6 @@
- void *__bound_ptr_indir16(void *p, int offset) __attribute__((regparm(2)));
- void __bound_local_new(void *p) __attribute__((regparm(1)));
- void __bound_local_delete(void *p) __attribute__((regparm(1)));
--#endif
-
- void *__bound_malloc(size_t size, const void *caller);
- void *__bound_memalign(size_t size, size_t align, const void *caller);
-@@ -168,7 +169,7 @@
-
- /* return '(p + offset)' for pointer arithmetic (a pointer can reach
- the end of a region in this case */
--void *__bound_ptr_add(void *p, int offset)
-+void * __attribute__((regparm(2))) __bound_ptr_add(void *p, int offset)
- {
- unsigned long addr = (unsigned long)p;
- BoundEntry *e;
-@@ -194,7 +195,8 @@
- /* return '(p + offset)' for pointer indirection (the resulting must
- be strictly inside the region */
- #define BOUND_PTR_INDIR(dsize) \
--void *__bound_ptr_indir ## dsize (void *p, int offset) \
-+void * __attribute__((regparm(2))) __bound_ptr_indir ## dsize \
-+ (void *p, int offset) \
- { \
- unsigned long addr = (unsigned long)p; \
- BoundEntry *e; \
-@@ -227,7 +229,7 @@
- #endif
-
- /* called when entering a function to add all the local regions */
--void __bound_local_new(void *p1)
-+void __attribute__((regparm(1))) __bound_local_new(void *p1)
- {
- unsigned long addr, size, fp, *p = p1;
- GET_CALLER_FP(fp);
-@@ -243,7 +245,7 @@
- }
-
- /* called when leaving a function to delete all the local regions */
--void __bound_local_delete(void *p1)
-+void __attribute__((regparm(1))) __bound_local_delete(void *p1)
- {
- unsigned long addr, fp, *p = p1;
- GET_CALLER_FP(fp);
-@@ -266,13 +268,14 @@
- {
- }
-
--void *__bound_ptr_add(void *p, int offset)
-+void * __attribute__((regparm(2))) __bound_ptr_add(void *p, int offset)
- {
- return p + offset;
- }
-
- #define BOUND_PTR_INDIR(dsize) \
--void *__bound_ptr_indir ## dsize (void *p, int offset) \
-+void * __attribute__((regparm(2))) __bound_ptr_indir ## dsize\
-+ (void *p, int offset)\
- { \
- return p + offset; \
- }
diff --git a/dev-lang/tcc/files/tcc-0.9.23-nxbit.patch b/dev-lang/tcc/files/tcc-0.9.23-nxbit.patch
new file mode 100644
index 000000000000..c64dd4047bb8
--- /dev/null
+++ b/dev-lang/tcc/files/tcc-0.9.23-nxbit.patch
@@ -0,0 +1,68 @@
+===================================================================
+RCS file: /sources/tinycc/tinycc/tcc.c,v
+retrieving revision 1.172
+retrieving revision 1.173
+diff -u -r1.172 -r1.173
+--- tinycc/tcc.c 2005/06/17 22:05:58 1.172
++++ tinycc/tcc.c 2005/09/03 18:31:43 1.173
+@@ -40,14 +40,20 @@
+ #include <time.h>
+ #ifdef WIN32
+ #include <sys/timeb.h>
++#include <windows.h>
+ #endif
+ #ifndef WIN32
+ #include <sys/time.h>
+ #include <sys/ucontext.h>
++#include <sys/mman.h>
+ #endif
+
+ #endif /* !CONFIG_TCCBOOT */
+
++#ifndef PAGESIZE
++#define PAGESIZE 4096
++#endif
++
+ #include "elf.h"
+ #include "stab.h"
+
+@@ -199,7 +205,7 @@
+ int sh_entsize; /* elf entry size */
+ unsigned long sh_size; /* section size (only used during output) */
+ unsigned long sh_addr; /* address at which the section is relocated */
+- unsigned long sh_offset; /* address at which the section is relocated */
++ unsigned long sh_offset; /* file offset */
+ int nb_hashed_syms; /* used to resize the hash table */
+ struct Section *link; /* link to another section */
+ struct Section *reloc; /* corresponding section for relocation, if any */
+@@ -9615,6 +9621,30 @@
+ if (s->reloc)
+ relocate_section(s1, s);
+ }
++
++ /* mark executable sections as executable in memory */
++ for(i = 1; i < s1->nb_sections; i++) {
++ s = s1->sections[i];
++ if ((s->sh_flags & (SHF_ALLOC | SHF_EXECINSTR)) ==
++ (SHF_ALLOC | SHF_EXECINSTR)) {
++#ifdef WIN32
++ {
++ DWORD old_protect;
++ VirtualProtect(s->data, s->data_offset,
++ PAGE_EXECUTE_READWRITE, &old_protect);
++ }
++#else
++ {
++ unsigned long start, end;
++ start = (unsigned long)(s->data) & ~(PAGESIZE - 1);
++ end = (unsigned long)(s->data + s->data_offset);
++ end = (end + PAGESIZE - 1) & ~(PAGESIZE - 1);
++ mprotect((void *)start, end - start,
++ PROT_READ | PROT_WRITE | PROT_EXEC);
++ }
++#endif
++ }
++ }
+ return 0;
+ }
+
diff --git a/dev-lang/tcc/tcc-0.9.19.ebuild b/dev-lang/tcc/tcc-0.9.19.ebuild
deleted file mode 100644
index 7bb262b4a467..000000000000
--- a/dev-lang/tcc/tcc-0.9.19.ebuild
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright 1999-2005 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/tcc/tcc-0.9.19.ebuild,v 1.8 2005/06/02 06:22:45 wormo Exp $
-
-IUSE=""
-
-DESCRIPTION="A very small C compiler for ix86"
-HOMEPAGE="http://www.tinycc.org/"
-SRC_URI="http://fabrice.bellard.free.fr/tcc/${P}.tar.gz"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-KEYWORDS="-* x86"
-
-DEPEND="virtual/libc"
-
-src_compile() {
- econf || die "configure failed"
- emake || die
-
- # Fix examples
- for example in ex*.c; do
- tail -n +2 $example >$example.temp
- echo '#! /usr/bin/env tcc' >$example
- cat $example.temp >>$example
- chmod 755 $example
- done
-}
-
-src_install() {
- #autoconf for the package does not create dirs if they are missing for some reason
- dodir /usr/bin
- dodir /usr/lib/tcc
- dodir /usr/share/man/man1
- dodir /usr/include
- make prefix=${D}/usr \
- bindir=${D}/usr/bin/ \
- libdir=${D}/usr/lib/ \
- includedir=${D}/usr/include/ \
- mandir=${D}/usr/share/man/ install || die
- dodoc Changelog README TODO VERSION COPYING
- dohtml tcc-doc.html
- mkdir ${D}/usr/share/doc/${PF}/examples
- cp ex*.c ${D}/usr/share/doc/${PF}/examples/
-}
diff --git a/dev-lang/tcc/tcc-0.9.20.ebuild b/dev-lang/tcc/tcc-0.9.20.ebuild
deleted file mode 100644
index 903a1af2cd4e..000000000000
--- a/dev-lang/tcc/tcc-0.9.20.ebuild
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright 1999-2005 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/tcc/tcc-0.9.20.ebuild,v 1.8 2005/07/14 21:22:27 agriffis Exp $
-
-inherit eutils
-
-IUSE=""
-
-DESCRIPTION="A very small C compiler for ix86"
-HOMEPAGE="http://www.tinycc.org/"
-SRC_URI="http://fabrice.bellard.free.fr/tcc/${P}.tar.gz"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-KEYWORDS="-* ~x86"
-
-DEPEND="virtual/libc"
-
-src_unpack() {
- unpack ${A}
- cd ${S}
-
- epatch ${FILESDIR}/${P}-gcc34.patch
-}
-
-src_compile() {
- econf || die "configure failed"
- emake || die
-
- # Fix examples
- for example in ex*.c; do
- tail -n +2 $example >$example.temp
- echo '#! /usr/bin/env tcc' >$example
- cat $example.temp >>$example
- chmod 755 $example
- done
-}
-
-src_install() {
- #autoconf for the package does not create dirs if they are missing for some reason
- dodir /usr/bin
- dodir /usr/lib/tcc
- dodir /usr/share/man/man1
- dodir /usr/include
- make prefix=${D}/usr \
- bindir=${D}/usr/bin/ \
- libdir=${D}/usr/lib/ \
- includedir=${D}/usr/include/ \
- mandir=${D}/usr/share/man/ install || die
- dodoc Changelog README TODO VERSION COPYING
- dohtml tcc-doc.html
- mkdir ${D}/usr/share/doc/${PF}/examples
- cp ex*.c ${D}/usr/share/doc/${PF}/examples/
-}
diff --git a/dev-lang/tcc/tcc-0.9.22.ebuild b/dev-lang/tcc/tcc-0.9.22.ebuild
deleted file mode 100644
index 185296c142d5..000000000000
--- a/dev-lang/tcc/tcc-0.9.22.ebuild
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright 1999-2006 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/tcc/tcc-0.9.22.ebuild,v 1.3 2006/01/08 21:29:21 halcy0n Exp $
-
-IUSE=""
-DESCRIPTION="A very small C compiler for ix86"
-HOMEPAGE="http://www.tinycc.org/"
-SRC_URI="http://fabrice.bellard.free.fr/tcc/${P}.tar.gz"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-KEYWORDS="-* x86"
-
-DEPEND="virtual/libc"
-
-src_compile() {
- econf || die "configure failed"
- emake || die
-
- # Fix examples
- for example in ex*.c; do
- tail -n +2 $example >$example.temp
- echo '#! /usr/bin/env tcc' >$example
- cat $example.temp >>$example
- chmod 755 $example
- done
-}
-
-src_install() {
- #autoconf for the package does not create dirs if they are missing for some reason
- dodir /usr/bin
- dodir /usr/lib/tcc
- dodir /usr/share/man/man1
- dodir /usr/include
- dodir /usr/share/doc/${PF}
- make prefix=${D}/usr \
- bindir=${D}/usr/bin/ \
- libdir=${D}/usr/lib/ \
- includedir=${D}/usr/include/ \
- docdir=${D}/usr/share/doc/${PF} \
- mandir=${D}/usr/share/man/ install || die
- dodoc Changelog README TODO VERSION COPYING
- dohtml tcc-doc.html
- dodir /usr/share/doc/${PF}/examples/
- insinto /usr/share/doc/${PF}/examples ; doins ex*.c
-}
diff --git a/dev-lang/tcc/tcc-0.9.23-r1.ebuild b/dev-lang/tcc/tcc-0.9.23-r1.ebuild
index 22134e61da33..0bee517e83b4 100644
--- a/dev-lang/tcc/tcc-0.9.23-r1.ebuild
+++ b/dev-lang/tcc/tcc-0.9.23-r1.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-lang/tcc/tcc-0.9.23-r1.ebuild,v 1.3 2007/04/27 11:25:23 armin76 Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-lang/tcc/tcc-0.9.23-r1.ebuild,v 1.4 2007/05/12 11:27:30 truedfx Exp $
inherit eutils
@@ -26,6 +26,7 @@ src_unpack() {
cd "${S}"
epatch "${FILESDIR}"/${P}-anonunion.patch
epatch "${FILESDIR}"/${P}-asneeded.patch
+ epatch "${FILESDIR}"/${P}-nxbit.patch
# Don't strip
sed -i -e 's|$(INSTALL) -s|$(INSTALL)|' Makefile