summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2010-01-12 15:18:05 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2010-01-12 15:18:05 -0800
commita809abb086b5cb5cd5545048b12f64b899c6a253 (patch)
tree72403af0ef4438c5d8974622bb9b98602879a7d8
parent194d3fa048cf909ca592dd56fa538dc9cd3f5ddb (diff)
downloadbionic-a809abb086b5cb5cd5545048b12f64b899c6a253.zip
bionic-a809abb086b5cb5cd5545048b12f64b899c6a253.tar.gz
bionic-a809abb086b5cb5cd5545048b12f64b899c6a253.tar.bz2
android-2.1_r1 snapshot
-rw-r--r--libc/kernel/common/linux/msm_kgsl.h9
-rw-r--r--libc/zoneinfo/zoneinfo.datbin169880 -> 168809 bytes
-rw-r--r--libc/zoneinfo/zoneinfo.idxbin29016 -> 29172 bytes
-rw-r--r--libc/zoneinfo/zoneinfo.version2
-rw-r--r--linker/linker.c7
-rw-r--r--linker/linker.h13
6 files changed, 24 insertions, 7 deletions
diff --git a/libc/kernel/common/linux/msm_kgsl.h b/libc/kernel/common/linux/msm_kgsl.h
index d717e57..740ba60 100644
--- a/libc/kernel/common/linux/msm_kgsl.h
+++ b/libc/kernel/common/linux/msm_kgsl.h
@@ -139,6 +139,8 @@ struct kgsl_drawctxt_destroy {
struct kgsl_sharedmem_from_pmem {
int pmem_fd;
unsigned int gpuaddr;
+ unsigned int len;
+ unsigned int offset;
};
#define IOCTL_KGSL_SHAREDMEM_FROM_PMEM _IOWR(KGSL_IOC_TYPE, 0x20, struct kgsl_sharedmem_from_pmem)
@@ -188,5 +190,12 @@ struct kgsl_sharedmem_from_vmalloc {
#define IOCTL_KGSL_SHAREDMEM_FLUSH_CACHE _IOW(KGSL_IOC_TYPE, 0x24, struct kgsl_sharedmem_free)
+struct kgsl_drawctxt_set_bin_base_offset {
+ unsigned int drawctxt_id;
+ unsigned int offset;
+};
+
+#define IOCTL_KGSL_DRAWCTXT_SET_BIN_BASE_OFFSET _IOW(KGSL_IOC_TYPE, 0x25, struct kgsl_drawctxt_set_bin_base_offset)
+
#endif
diff --git a/libc/zoneinfo/zoneinfo.dat b/libc/zoneinfo/zoneinfo.dat
index e5bf25a..c9f0b6f 100644
--- a/libc/zoneinfo/zoneinfo.dat
+++ b/libc/zoneinfo/zoneinfo.dat
Binary files differ
diff --git a/libc/zoneinfo/zoneinfo.idx b/libc/zoneinfo/zoneinfo.idx
index 78a3650..cb560db 100644
--- a/libc/zoneinfo/zoneinfo.idx
+++ b/libc/zoneinfo/zoneinfo.idx
Binary files differ
diff --git a/libc/zoneinfo/zoneinfo.version b/libc/zoneinfo/zoneinfo.version
index 289c5d1..57a3708 100644
--- a/libc/zoneinfo/zoneinfo.version
+++ b/libc/zoneinfo/zoneinfo.version
@@ -1 +1 @@
-2007h
+2009s
diff --git a/linker/linker.c b/linker/linker.c
index 5090b11..80b5d00 100644
--- a/linker/linker.c
+++ b/linker/linker.c
@@ -1294,6 +1294,13 @@ static int reloc_library(soinfo *si, Elf32_Rel *rel, unsigned count)
reloc, sym_addr, sym_name);
*((unsigned*)reloc) += sym_addr;
break;
+ case R_ARM_REL32:
+ COUNT_RELOC(RELOC_RELATIVE);
+ MARK(rel->r_offset);
+ TRACE_TYPE(RELO, "%5d RELO REL32 %08x <- %08x - %08x %s\n", pid,
+ reloc, sym_addr, rel->r_offset, sym_name);
+ *((unsigned*)reloc) += sym_addr - rel->r_offset;
+ break;
#elif defined(ANDROID_X86_LINKER)
case R_386_JUMP_SLOT:
COUNT_RELOC(RELOC_ABSOLUTE);
diff --git a/linker/linker.h b/linker/linker.h
index d289c81..551cf93 100644
--- a/linker/linker.h
+++ b/linker/linker.h
@@ -159,6 +159,13 @@ extern soinfo libdl_info;
#define R_ARM_JUMP_SLOT 22
#define R_ARM_RELATIVE 23
+/* According to the AAPCS specification, we only
+ * need the above relocations. However, in practice,
+ * the following ones turn up from time to time.
+ */
+#define R_ARM_ABS32 2
+#define R_ARM_REL32 3
+
#elif defined(ANDROID_X86_LINKER)
#define R_386_32 1
@@ -194,12 +201,6 @@ extern soinfo libdl_info;
#define DT_PREINIT_ARRAYSZ 33
#endif
-/* in theory we only need the above relative relocations,
- but in practice the following one turns up from time
- to time. fushigi na.
-*/
-#define R_ARM_ABS32 2
-
soinfo *find_library(const char *name);
unsigned unload_library(soinfo *si);
Elf32_Sym *lookup_in_library(soinfo *si, const char *name);