summaryrefslogtreecommitdiffstats
path: root/9/platforms/android-19/arch-x86_64
diff options
context:
space:
mode:
authorAndrew Hsieh <andrewhsieh@google.com>2014-02-06 14:54:33 +0800
committerAndrew Hsieh <andrewhsieh@google.com>2014-02-06 17:41:31 +0800
commit7372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2c (patch)
tree90f9cc5ff38d4d9a1133780bdbf33053674760a2 /9/platforms/android-19/arch-x86_64
parent733874f3f5180fc248286514eac91100b9b9b4e2 (diff)
downloadprebuilts_ndk-7372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2c.zip
prebuilts_ndk-7372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2c.tar.gz
prebuilts_ndk-7372bd5a6d7d0cb636bdfdd27ca99b2d6abc0f2c.tar.bz2
Add platforms headers/libs for mips64
Also 1) update some headers in arm64/x86_64 2) add crtbegin_dynamic.o for x86_64 missing from last time 3) add symlink to android-19/arch-mips64 for other levels 4) refresh stlport mainly to account for the fact that sizeof(long double)==16 since https://android-review.googlesource.com/#/c/81133/ Change-Id: I5ea68cb8f17304682fc1d3ac7a27367d2c9a6daa
Diffstat (limited to '9/platforms/android-19/arch-x86_64')
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/android/input.h58
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/err.h9
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/stdio.h4
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/string.h2
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/sys/_types.h43
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/sys/endian.h1
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/sys/exec_elf.h20
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/sys/stat.h28
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/include/sys/vfs.h18
-rw-r--r--9/platforms/android-19/arch-x86_64/usr/lib/crtbegin_dynamic.obin0 -> 2272 bytes
10 files changed, 123 insertions, 60 deletions
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/android/input.h b/9/platforms/android-19/arch-x86_64/usr/include/android/input.h
index fead769..a660d7e 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/android/input.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/android/input.h
@@ -581,23 +581,23 @@ int64_t AMotionEvent_getEventTime(const AInputEvent* motion_event);
* For touch events on the screen, this is the delta that was added to the raw
* screen coordinates to adjust for the absolute position of the containing windows
* and views. */
-float AMotionEvent_getXOffset(const AInputEvent* motion_event);
+float AMotionEvent_getXOffset(const AInputEvent* motion_event) __NDK_FPABI__;
-/* Get the precision of the Y coordinates being reported.
+/* Get the Y coordinate offset.
* For touch events on the screen, this is the delta that was added to the raw
* screen coordinates to adjust for the absolute position of the containing windows
* and views. */
-float AMotionEvent_getYOffset(const AInputEvent* motion_event);
+float AMotionEvent_getYOffset(const AInputEvent* motion_event) __NDK_FPABI__;
/* Get the precision of the X coordinates being reported.
* You can multiply this number with an X coordinate sample to find the
* actual hardware value of the X coordinate. */
-float AMotionEvent_getXPrecision(const AInputEvent* motion_event);
+float AMotionEvent_getXPrecision(const AInputEvent* motion_event) __NDK_FPABI__;
/* Get the precision of the Y coordinates being reported.
* You can multiply this number with a Y coordinate sample to find the
* actual hardware value of the Y coordinate. */
-float AMotionEvent_getYPrecision(const AInputEvent* motion_event);
+float AMotionEvent_getYPrecision(const AInputEvent* motion_event) __NDK_FPABI__;
/* Get the number of pointers of data contained in this event.
* Always >= 1. */
@@ -618,29 +618,29 @@ int32_t AMotionEvent_getToolType(const AInputEvent* motion_event, size_t pointer
* For touch events on the screen, this is the original location of the event
* on the screen, before it had been adjusted for the containing window
* and views. */
-float AMotionEvent_getRawX(const AInputEvent* motion_event, size_t pointer_index);
+float AMotionEvent_getRawX(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
/* Get the original raw X coordinate of this event.
* For touch events on the screen, this is the original location of the event
* on the screen, before it had been adjusted for the containing window
* and views. */
-float AMotionEvent_getRawY(const AInputEvent* motion_event, size_t pointer_index);
+float AMotionEvent_getRawY(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
/* Get the current X coordinate of this event for the given pointer index.
* Whole numbers are pixels; the value may have a fraction for input devices
* that are sub-pixel precise. */
-float AMotionEvent_getX(const AInputEvent* motion_event, size_t pointer_index);
+float AMotionEvent_getX(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
/* Get the current Y coordinate of this event for the given pointer index.
* Whole numbers are pixels; the value may have a fraction for input devices
* that are sub-pixel precise. */
-float AMotionEvent_getY(const AInputEvent* motion_event, size_t pointer_index);
+float AMotionEvent_getY(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
/* Get the current pressure of this event for the given pointer index.
* The pressure generally ranges from 0 (no pressure at all) to 1 (normal pressure),
* although values higher than 1 may be generated depending on the calibration of
* the input device. */
-float AMotionEvent_getPressure(const AInputEvent* motion_event, size_t pointer_index);
+float AMotionEvent_getPressure(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
/* Get the current scaled value of the approximate size for the given pointer index.
* This represents some approximation of the area of the screen being
@@ -648,27 +648,27 @@ float AMotionEvent_getPressure(const AInputEvent* motion_event, size_t pointer_i
* touch is normalized with the device specific range of values
* and scaled to a value between 0 and 1. The value of size can be used to
* determine fat touch events. */
-float AMotionEvent_getSize(const AInputEvent* motion_event, size_t pointer_index);
+float AMotionEvent_getSize(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
/* Get the current length of the major axis of an ellipse that describes the touch area
* at the point of contact for the given pointer index. */
-float AMotionEvent_getTouchMajor(const AInputEvent* motion_event, size_t pointer_index);
+float AMotionEvent_getTouchMajor(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
/* Get the current length of the minor axis of an ellipse that describes the touch area
* at the point of contact for the given pointer index. */
-float AMotionEvent_getTouchMinor(const AInputEvent* motion_event, size_t pointer_index);
+float AMotionEvent_getTouchMinor(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
/* Get the current length of the major axis of an ellipse that describes the size
* of the approaching tool for the given pointer index.
* The tool area represents the estimated size of the finger or pen that is
* touching the device independent of its actual touch area at the point of contact. */
-float AMotionEvent_getToolMajor(const AInputEvent* motion_event, size_t pointer_index);
+float AMotionEvent_getToolMajor(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
/* Get the current length of the minor axis of an ellipse that describes the size
* of the approaching tool for the given pointer index.
* The tool area represents the estimated size of the finger or pen that is
* touching the device independent of its actual touch area at the point of contact. */
-float AMotionEvent_getToolMinor(const AInputEvent* motion_event, size_t pointer_index);
+float AMotionEvent_getToolMinor(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
/* Get the current orientation of the touch area and tool area in radians clockwise from
* vertical for the given pointer index.
@@ -678,11 +678,11 @@ float AMotionEvent_getToolMinor(const AInputEvent* motion_event, size_t pointer_
* indicates that the major axis of contact is oriented to the left.
* The full range is from -PI/2 radians (finger pointing fully left) to PI/2 radians
* (finger pointing fully right). */
-float AMotionEvent_getOrientation(const AInputEvent* motion_event, size_t pointer_index);
+float AMotionEvent_getOrientation(const AInputEvent* motion_event, size_t pointer_index) __NDK_FPABI__;
/* Get the value of the request axis for the given pointer index. */
float AMotionEvent_getAxisValue(const AInputEvent* motion_event,
- int32_t axis, size_t pointer_index);
+ int32_t axis, size_t pointer_index) __NDK_FPABI__;
/* Get the number of historical points in this event. These are movements that
* have occurred between this event and the previous event. This only applies
@@ -703,7 +703,7 @@ int64_t AMotionEvent_getHistoricalEventTime(const AInputEvent* motion_event,
* Whole numbers are pixels; the value may have a fraction for input devices
* that are sub-pixel precise. */
float AMotionEvent_getHistoricalRawX(const AInputEvent* motion_event, size_t pointer_index,
- size_t history_index);
+ size_t history_index) __NDK_FPABI__;
/* Get the historical raw Y coordinate of this event for the given pointer index that
* occurred between this event and the previous motion event.
@@ -713,21 +713,21 @@ float AMotionEvent_getHistoricalRawX(const AInputEvent* motion_event, size_t poi
* Whole numbers are pixels; the value may have a fraction for input devices
* that are sub-pixel precise. */
float AMotionEvent_getHistoricalRawY(const AInputEvent* motion_event, size_t pointer_index,
- size_t history_index);
+ size_t history_index) __NDK_FPABI__;
/* Get the historical X coordinate of this event for the given pointer index that
* occurred between this event and the previous motion event.
* Whole numbers are pixels; the value may have a fraction for input devices
* that are sub-pixel precise. */
float AMotionEvent_getHistoricalX(const AInputEvent* motion_event, size_t pointer_index,
- size_t history_index);
+ size_t history_index) __NDK_FPABI__;
/* Get the historical Y coordinate of this event for the given pointer index that
* occurred between this event and the previous motion event.
* Whole numbers are pixels; the value may have a fraction for input devices
* that are sub-pixel precise. */
float AMotionEvent_getHistoricalY(const AInputEvent* motion_event, size_t pointer_index,
- size_t history_index);
+ size_t history_index) __NDK_FPABI__;
/* Get the historical pressure of this event for the given pointer index that
* occurred between this event and the previous motion event.
@@ -735,7 +735,7 @@ float AMotionEvent_getHistoricalY(const AInputEvent* motion_event, size_t pointe
* although values higher than 1 may be generated depending on the calibration of
* the input device. */
float AMotionEvent_getHistoricalPressure(const AInputEvent* motion_event, size_t pointer_index,
- size_t history_index);
+ size_t history_index) __NDK_FPABI__;
/* Get the current scaled value of the approximate size for the given pointer index that
* occurred between this event and the previous motion event.
@@ -745,19 +745,19 @@ float AMotionEvent_getHistoricalPressure(const AInputEvent* motion_event, size_t
* and scaled to a value between 0 and 1. The value of size can be used to
* determine fat touch events. */
float AMotionEvent_getHistoricalSize(const AInputEvent* motion_event, size_t pointer_index,
- size_t history_index);
+ size_t history_index) __NDK_FPABI__;
/* Get the historical length of the major axis of an ellipse that describes the touch area
* at the point of contact for the given pointer index that
* occurred between this event and the previous motion event. */
float AMotionEvent_getHistoricalTouchMajor(const AInputEvent* motion_event, size_t pointer_index,
- size_t history_index);
+ size_t history_index) __NDK_FPABI__;
/* Get the historical length of the minor axis of an ellipse that describes the touch area
* at the point of contact for the given pointer index that
* occurred between this event and the previous motion event. */
float AMotionEvent_getHistoricalTouchMinor(const AInputEvent* motion_event, size_t pointer_index,
- size_t history_index);
+ size_t history_index) __NDK_FPABI__;
/* Get the historical length of the major axis of an ellipse that describes the size
* of the approaching tool for the given pointer index that
@@ -765,7 +765,7 @@ float AMotionEvent_getHistoricalTouchMinor(const AInputEvent* motion_event, size
* The tool area represents the estimated size of the finger or pen that is
* touching the device independent of its actual touch area at the point of contact. */
float AMotionEvent_getHistoricalToolMajor(const AInputEvent* motion_event, size_t pointer_index,
- size_t history_index);
+ size_t history_index) __NDK_FPABI__;
/* Get the historical length of the minor axis of an ellipse that describes the size
* of the approaching tool for the given pointer index that
@@ -773,7 +773,7 @@ float AMotionEvent_getHistoricalToolMajor(const AInputEvent* motion_event, size_
* The tool area represents the estimated size of the finger or pen that is
* touching the device independent of its actual touch area at the point of contact. */
float AMotionEvent_getHistoricalToolMinor(const AInputEvent* motion_event, size_t pointer_index,
- size_t history_index);
+ size_t history_index) __NDK_FPABI__;
/* Get the historical orientation of the touch area and tool area in radians clockwise from
* vertical for the given pointer index that
@@ -785,12 +785,12 @@ float AMotionEvent_getHistoricalToolMinor(const AInputEvent* motion_event, size_
* The full range is from -PI/2 radians (finger pointing fully left) to PI/2 radians
* (finger pointing fully right). */
float AMotionEvent_getHistoricalOrientation(const AInputEvent* motion_event, size_t pointer_index,
- size_t history_index);
+ size_t history_index) __NDK_FPABI__;
/* Get the historical value of the request axis for the given pointer index
* that occurred between this event and the previous motion event. */
float AMotionEvent_getHistoricalAxisValue(const AInputEvent* motion_event,
- int32_t axis, size_t pointer_index, size_t history_index);
+ int32_t axis, size_t pointer_index, size_t history_index) __NDK_FPABI__;
/*
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/err.h b/9/platforms/android-19/arch-x86_64/usr/include/err.h
index f24da61..aad1f59 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/err.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/err.h
@@ -35,15 +35,8 @@
#ifndef _ERR_H_
#define _ERR_H_
-/*
- * Don't use va_list in the err/warn prototypes. Va_list is typedef'd in two
- * places (<machine/varargs.h> and <machine/stdarg.h>), so if we include one
- * of them here we may collide with the utility's includes. It's unreasonable
- * for utilities to have to include one of them to include err.h, so we get
- * __va_list from <machine/_types.h> and use it.
- */
#include <sys/cdefs.h>
-#include <machine/_types.h>
+#include <sys/types.h>
__BEGIN_DECLS
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/stdio.h b/9/platforms/android-19/arch-x86_64/usr/include/stdio.h
index d668787..c241d94 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/stdio.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/stdio.h
@@ -470,10 +470,8 @@ int vsprintf(char *dest, const char *format, __va_list ap)
}
#if defined(__clang__)
-#if !defined(WITH_SYNTAX_CHECK)
#define __wrap_snprintf(dest, size, ...) __builtin___snprintf_chk(dest, size, 0, __bos(dest), __VA_ARGS__)
#define snprintf(...) __wrap_snprintf(__VA_ARGS__)
-#endif
#else
__BIONIC_FORTIFY_INLINE
__printflike(3, 4)
@@ -485,10 +483,8 @@ int snprintf(char *dest, size_t size, const char *format, ...)
#endif
#if defined(__clang__)
-#if !defined(WITH_SYNTAX_CHECK)
#define __wrap_sprintf(dest, ...) __builtin___sprintf_chk(dest, 0, __bos(dest), __VA_ARGS__)
#define sprintf(...) __wrap_sprintf(__VA_ARGS__)
-#endif
#else
__BIONIC_FORTIFY_INLINE
__printflike(2, 3)
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/string.h b/9/platforms/android-19/arch-x86_64/usr/include/string.h
index c834040..37d22c4 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/string.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/string.h
@@ -244,7 +244,6 @@ size_t strlen(const char *s) {
return __strlen_chk(s, bos);
}
-#if !defined(HAS_STRCHR)
__BIONIC_FORTIFY_INLINE
char* strchr(const char *s, int c) {
size_t bos = __bos(s);
@@ -263,7 +262,6 @@ char* strchr(const char *s, int c) {
return __strchr_chk(s, c, bos);
}
-#endif
extern char* __strrchr_chk(const char *, int, size_t);
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/sys/_types.h b/9/platforms/android-19/arch-x86_64/usr/include/sys/_types.h
index 9d313d1..6bf9c1c 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/sys/_types.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/sys/_types.h
@@ -32,9 +32,48 @@
*/
#ifndef _SYS__TYPES_H_
-#define _SYS__TYPES_H_
+#define _SYS__TYPES_H_
-#include <machine/_types.h>
+typedef __signed char __int8_t;
+typedef unsigned char __uint8_t;
+typedef short __int16_t;
+typedef unsigned short __uint16_t;
+typedef int __int32_t;
+typedef unsigned int __uint32_t;
+#if __LP64__
+typedef long __int64_t;
+typedef unsigned long __uint64_t;
+#else
+typedef long long __int64_t;
+typedef unsigned long long __uint64_t;
+#endif
+
+#if __LP64__
+typedef long __intptr_t;
+typedef unsigned long __uintptr_t;
+#else
+typedef int __intptr_t;
+typedef unsigned int __uintptr_t;
+#endif
+
+#if __LP64__
+typedef long __time_t;
+#else
+typedef int __time_t; /* Historical accident. */
+#endif
+
+typedef int __timer_t;
+
+typedef int __clockid_t;
+
+#ifndef __cplusplus
+typedef int __wchar_t;
+#endif
+
+typedef double __double_t;
+typedef float __float_t;
+
+typedef __builtin_va_list __va_list;
typedef unsigned long __cpuid_t; /* CPU id */
typedef __uint32_t __fixpt_t; /* fixed point number */
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/sys/endian.h b/9/platforms/android-19/arch-x86_64/usr/include/sys/endian.h
index b0365d8..cbde121 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/sys/endian.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/sys/endian.h
@@ -38,7 +38,6 @@
#include <sys/cdefs.h>
#include <machine/endian.h>
-#include <machine/_types.h>
#define _LITTLE_ENDIAN 1234
#define _BIG_ENDIAN 4321
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/sys/exec_elf.h b/9/platforms/android-19/arch-x86_64/usr/include/sys/exec_elf.h
index 3c1467c..d14c596 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/sys/exec_elf.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/sys/exec_elf.h
@@ -577,9 +577,29 @@ typedef struct {
} Elf64_Rela;
/* r_info utility macros */
+#if defined(__mips__)
+#if defined(__MIPSEL__)
+#define ELF64_R_SYM(info) (((info) >> 0) & 0xffffffff)
+#define ELF64_R_SSYM(info) (((info) >> 32) & 0xff)
+#define ELF64_R_TYPE3(info) (((info) >> 40) & 0xff)
+#define ELF64_R_TYPE2(info) (((info) >> 48) & 0xff)
+#define ELF64_R_TYPE(info) (((info) >> 56) & 0xff)
+#define ELF64_R_INFO(sym,ssym,type,type2,type3) \
+ (((type) << 56) + ((type2) << 48) + ((type3) << 40) + ((ssym) << 32) + (sym))
+#else
+#define ELF64_R_SYM(info) (((info) >> 32) & 0xffffffff)
+#define ELF64_R_SSYM(info) (((info) >> 24) & 0xff)
+#define ELF64_R_TYPE3(info) (((info) >> 16) & 0xff)
+#define ELF64_R_TYPE2(info) (((info) >> 8) & 0xff)
+#define ELF64_R_TYPE(info) (((info) >> 0) & 0xff)
+#define ELF64_R_INFO(sym,ssym,type,type2,type3) \
+ (((sym) << 32) + ((ssym) << 24) + ((type3) << 16) + ((type2) << 8) + (type))
+#endif
+#else
#define ELF64_R_SYM(info) ((info) >> 32)
#define ELF64_R_TYPE(info) ((info) & 0xffffffff)
#define ELF64_R_INFO(sym,type) (((sym) << 32) + (type))
+#endif
/*
* Move entries
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/sys/stat.h b/9/platforms/android-19/arch-x86_64/usr/include/sys/stat.h
index 3d754c0..37b8dc2 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/sys/stat.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/sys/stat.h
@@ -62,24 +62,24 @@ struct stat {
};
#elif defined(__mips__)
struct stat {
- unsigned long st_dev;
- unsigned long __pad0[3];
+ unsigned int st_dev;
+ unsigned int __pad0[3];
unsigned long long st_ino;
unsigned int st_mode;
unsigned int st_nlink;
- unsigned long st_uid;
- unsigned long st_gid;
- unsigned long st_rdev;
- unsigned long __pad1[3];
+ unsigned int st_uid;
+ unsigned int st_gid;
+ unsigned int st_rdev;
+ unsigned int __pad1[3];
long long st_size;
- unsigned long st_atime;
- unsigned long st_atime_nsec;
- unsigned long st_mtime;
- unsigned long st_mtime_nsec;
- unsigned long st_ctime;
- unsigned long st_ctime_nsec;
- unsigned long st_blksize;
- unsigned long __pad2;
+ unsigned int st_atime;
+ unsigned int st_atime_nsec;
+ unsigned int st_mtime;
+ unsigned int st_mtime_nsec;
+ unsigned int st_ctime;
+ unsigned int st_ctime_nsec;
+ unsigned int st_blksize;
+ unsigned int __pad2;
unsigned long long st_blocks;
};
#elif defined(__x86_64__)
diff --git a/9/platforms/android-19/arch-x86_64/usr/include/sys/vfs.h b/9/platforms/android-19/arch-x86_64/usr/include/sys/vfs.h
index 10fe502..fd2655c 100644
--- a/9/platforms/android-19/arch-x86_64/usr/include/sys/vfs.h
+++ b/9/platforms/android-19/arch-x86_64/usr/include/sys/vfs.h
@@ -39,6 +39,23 @@ typedef struct { int __val[2]; } __fsid_t;
typedef __fsid_t fsid_t;
#if defined(__LP64__)
+#if defined(__mips__)
+/* 64-bit MIPS */
+struct statfs {
+ uint64_t f_type;
+ uint64_t f_bsize;
+ uint64_t f_frsize; /* Fragment size - unsupported */
+ uint64_t f_blocks;
+ uint64_t f_bfree;
+ uint64_t f_files;
+ uint64_t f_ffree;
+ uint64_t f_bavail;
+ fsid_t f_fsid;
+ uint64_t f_namelen;
+ uint64_t f_flags;
+ uint64_t f_spare[5];
+};
+#else
struct statfs {
uint64_t f_type;
uint64_t f_bsize;
@@ -53,6 +70,7 @@ struct statfs {
uint64_t f_flags;
uint64_t f_spare[4];
};
+#endif
#elif defined(__mips__)
/* 32-bit MIPS (corresponds to the kernel's statfs64 type). */
struct statfs {
diff --git a/9/platforms/android-19/arch-x86_64/usr/lib/crtbegin_dynamic.o b/9/platforms/android-19/arch-x86_64/usr/lib/crtbegin_dynamic.o
new file mode 100644
index 0000000..a2cb414
--- /dev/null
+++ b/9/platforms/android-19/arch-x86_64/usr/lib/crtbegin_dynamic.o
Binary files differ