samples: add a new samples for the TI DaVinci processors.
Dragan Marinkovic <marinkovic.dragan@gmail.com> wrote:
I finally had the time (and board) to spend some time with
crosstool-NG version 1.5.2 and TMS320DM6446 (DaVinci Digital Media
System-on-Chip,
http://focus.ti.com/docs/prod/folders/print/tms320dm6446.html).
I was able to successfully build and run v2.6.27-davinci1 kernel
(Kevin Hilman's branch) with busybox based initramfs on it. I don't
believe that any later kernel would represent any challenge (it just
happens that I'm currently working with this version). What a thrill
:).
crosstool-NG/toolchain config is attached. It may be useful to someone
using crosstool-NG ...
1 --- glibc-2.7.orig/sysdeps/unix/alpha/sysdep.h
2 +++ glibc-2.7/sysdeps/unix/alpha/sysdep.h
4 _sc_ret = _sc_0, _sc_err = _sc_19; \
7 -/* Pointer mangling support. Note that tls access is slow enough that
8 - we don't deoptimize things by placing the pointer check value there. */
12 -#if defined NOT_IN_libc && defined IS_IN_rtld
13 -# ifdef __ASSEMBLER__
14 -# define PTR_MANGLE(dst, src, tmp) \
15 - ldah tmp, __pointer_chk_guard_local($29) !gprelhigh; \
16 - ldq tmp, __pointer_chk_guard_local(tmp) !gprellow; \
18 -# define PTR_MANGLE2(dst, src, tmp) \
20 -# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp)
21 -# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp)
23 -extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden;
24 -# define PTR_MANGLE(var) \
25 - (var) = (__typeof (var)) ((uintptr_t) (var) ^ __pointer_chk_guard_local)
26 -# define PTR_DEMANGLE(var) PTR_MANGLE(var)
29 -# ifdef __ASSEMBLER__
30 -# define PTR_MANGLE(dst, src, tmp) \
31 - ldq tmp, __pointer_chk_guard; \
33 -# define PTR_MANGLE2(dst, src, tmp) \
35 -# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp)
36 -# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp)
38 -extern uintptr_t __pointer_chk_guard attribute_relro;
39 -# define PTR_MANGLE(var) \
40 - (var) = (void *) ((uintptr_t) (var) ^ __pointer_chk_guard)
41 -# define PTR_DEMANGLE(var) PTR_MANGLE(var)
45 #endif /* ASSEMBLER */
46 --- glibc-2.7.orig/sysdeps/unix/sysv/linux/alpha/sysdep.h
47 +++ glibc-2.7/sysdeps/unix/sysv/linux/alpha/sysdep.h
49 INTERNAL_SYSCALL1(name, err_out, nr, args); \
52 +/* Pointer mangling support. Note that tls access is slow enough that
53 + we don't deoptimize things by placing the pointer check value there. */
55 +#if defined NOT_IN_libc && defined IS_IN_rtld
56 +# ifdef __ASSEMBLER__
57 +# define PTR_MANGLE(dst, src, tmp) \
58 + ldah tmp, __pointer_chk_guard_local($29) !gprelhigh; \
59 + ldq tmp, __pointer_chk_guard_local(tmp) !gprellow; \
61 +# define PTR_MANGLE2(dst, src, tmp) \
63 +# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp)
64 +# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp)
66 +extern uintptr_t __pointer_chk_guard_local attribute_relro attribute_hidden;
67 +# define PTR_MANGLE(var) \
68 + (var) = (__typeof (var)) ((uintptr_t) (var) ^ __pointer_chk_guard_local)
69 +# define PTR_DEMANGLE(var) PTR_MANGLE(var)
72 +# ifdef __ASSEMBLER__
73 +# define PTR_MANGLE(dst, src, tmp) \
74 + ldq tmp, __pointer_chk_guard; \
76 +# define PTR_MANGLE2(dst, src, tmp) \
78 +# define PTR_DEMANGLE(dst, tmp) PTR_MANGLE(dst, dst, tmp)
79 +# define PTR_DEMANGLE2(dst, tmp) PTR_MANGLE2(dst, dst, tmp)
81 +extern uintptr_t __pointer_chk_guard attribute_relro;
82 +# define PTR_MANGLE(var) \
83 + (var) = (void *) ((uintptr_t) (var) ^ __pointer_chk_guard)
84 +# define PTR_DEMANGLE(var) PTR_MANGLE(var)
87 +/* Pointer mangling is not yet supported for static libc on alpha. */
88 +# ifndef __ASSEMBLER__
89 +# define PTR_MANGLE(var) (void) (var)
90 +# define PTR_DEMANGLE(var) (void) (var)
94 #endif /* _LINUX_ALPHA_SYSDEP_H */