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
commitb13e58978d30329d73a49b40ab84acca8812c2a7 (patch)
treec493742c57324c66485faaa21e3295dc4f7d2fb7 /dev-lang/tcc/files
parentVersion bump. (diff)
downloadhistorical-b13e58978d30329d73a49b40ab84acca8812c2a7.tar.gz
historical-b13e58978d30329d73a49b40ab84acca8812c2a7.tar.bz2
historical-b13e58978d30329d73a49b40ab84acca8812c2a7.zip
Fix crash on nxbit-enabled CPUs (#178168), remove older versions
Package-Manager: portage-2.1.2.7
Diffstat (limited to 'dev-lang/tcc/files')
-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
5 files changed, 68 insertions, 84 deletions
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;
+ }
+