Mis-aligned data on ARM and other embedded devices is toxic - it causes a bus error.
clang -c ldso/ldso/ldso.c -o ldso/ldso/ldso.oS -include ./include/libc-symbols.h -Wall -Wstrict-prototypes -Wstrict-aliasing -Wformat=2 -Wmissing-noreturn -Wmissing-format-attribute -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wnonnull -Wold-style-definition -Wshadow -Wundef -Wdeclaration-after-statement -funsigned-char -fno-builtin -fno-asm -std=gnu99 -fno-stack-protector -nostdinc -I./include -I./include -I. -I./libc/sysdeps/linux -I./libc/sysdeps/linux/x86_64 -Os -funit-at-a-time -fmerge-all-constants -fstrict-aliasing -Wcast-align -fno-common -I./libc/sysdeps/linux/common -I/usr/src/linux-headers-3.2.0-38/include/ -isystem /usr/local/bin/../lib/clang/3.1/include-fixed -isystem /usr/local/bin/../lib/clang/3.1/include -DNDEBUG -fPIC -DSHARED -DNOT_IN_libc -DIS_IN_rtld -fno-stack-protector -fno-omit-frame-pointer -I./ldso/ldso/x86_64 -I./ldso/include -I./ldso/ldso -DUCLIBC_RUNTIME_PREFIX=\"/usr/x86_64-linux-uclibc/\" -DUCLIBC_LDSO=\"ld64-uClibc.so.0\" -DLDSO_ELFINTERP=\"x86_64/elfinterp.c\" -DNOT_IN_libc -DIS_IN_rtld -fno-stack-protector -fno-omit-frame-pointer -I./ldso/ldso/x86_64 -I./ldso/include -I./ldso/ldso -DUCLIBC_RUNTIME_PREFIX=\"/usr/x86_64-linux-uclibc/\" -DUCLIBC_LDSO=\"ld64-uClibc.so.0\" -MT ldso/ldso/ldso.oS -MD -MP -MF ldso/ldso/.ldso.oS.dep ./ldso/ldso/x86_64/elfinterp.c:61:15: warning: cast from 'char *' to 'Elf64_Rela *' increases required alignment from 1 to 8 [-Wcast-align] this_reloc = (ELF_RELOC *)(rel_addr + reloc_entry); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ldso/ldso/ldso.c:93: ./ldso/ldso/dl-startup.c:200:15: warning: cast from 'unsigned char (*)[16]' to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] || *(p32 = (uint32_t*)&header->e_ident) != ELFMAG_U32 ^~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ldso/ldso/ldso.c:1432: ./ldso/ldso/dl-elf.c:68:11: warning: cast from 'caddr_t' (aka 'char *') to 'header_t *' increases required alignment from 1 to 4 [-Wcast-align] header = (header_t *) _dl_cache_addr; ^~~~~~~~~~~~~~~~~~~~~~~~~~~ ./ldso/ldso/dl-elf.c:270:22: warning: cast from 'caddr_t' (aka 'char *') to 'header_t *' increases required alignment from 1 to 4 [-Wcast-align] header_t *header = (header_t *) _dl_cache_addr; ^~~~~~~~~~~~~~~~~~~~~~~~~~~ ./ldso/ldso/dl-elf.c:513:8: warning: cast from 'unsigned char (*)[16]' to 'uint32_t *' (aka 'unsigned int *') increases required alignment from 1 to 4 [-Wcast-align] p32 = (uint32_t*)&epnt->e_ident; ^~~~~~~~~~~~~~~~~~~~~~~~~ 5 warnings generated.
clang -c libc/sysdeps/linux/common/cmsg_nxthdr.c -o libc/sysdeps/linux/common/cmsg_nxthdr.os -include ./include/libc-symbols.h -Wall -Wstrict-prototypes -Wstrict-aliasing -Wformat=2 -Wmissing-noreturn -Wmissing-format-attribute -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wnonnull -Wold-style-definition -Wshadow -Wundef -Wdeclaration-after-statement -funsigned-char -fno-builtin -fno-asm -std=gnu99 -fno-stack-protector -nostdinc -I./include -I./include -I. -I./libc/sysdeps/linux -I./libc/sysdeps/linux/x86_64 -Os -funit-at-a-time -fmerge-all-constants -fstrict-aliasing -Wcast-align -fno-common -I./libc/sysdeps/linux/common -I/usr/src/linux-headers-3.2.0-38/include/ -isystem /usr/local/bin/../lib/clang/3.1/include-fixed -isystem /usr/local/bin/../lib/clang/3.1/include -DNDEBUG -fPIC -MT libc/sysdeps/linux/common/cmsg_nxthdr.os -MD -MP -MF libc/sysdeps/linux/common/.cmsg_nxthdr.os.dep libc/sysdeps/linux/common/cmsg_nxthdr.c:34:10: warning: cast from 'unsigned char *' to 'struct cmsghdr *' increases required alignment from 1 to 8 [-Wcast-align] cmsg = (struct cmsghdr *) ((unsigned char *) cmsg ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
clang -c libc/sysdeps/linux/common/getdents64.c -o libc/sysdeps/linux/common/getdents64.os -include ./include/libc-symbols.h -Wall -Wstrict-prototypes -Wstrict-aliasing -Wformat=2 -Wmissing-noreturn -Wmissing-format-attribute -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wnonnull -Wold-style-definition -Wshadow -Wundef -Wdeclaration-after-statement -funsigned-char -fno-builtin -fno-asm -std=gnu99 -fno-stack-protector -nostdinc -I./include -I./include -I. -I./libc/sysdeps/linux -I./libc/sysdeps/linux/x86_64 -Os -funit-at-a-time -fmerge-all-constants -fstrict-aliasing -Wcast-align -fno-common -I./libc/sysdeps/linux/common -I/usr/src/linux-headers-3.2.0-38/include/ -isystem /usr/local/bin/../lib/clang/3.1/include-fixed -isystem /usr/local/bin/../lib/clang/3.1/include -DNDEBUG -fPIC -MT libc/sysdeps/linux/common/getdents64.os -MD -MP -MF libc/sysdeps/linux/common/.getdents64.os.dep libc/sysdeps/linux/common/getdents64.c:54:10: warning: cast from 'char *' to 'struct dirent64 *' increases required alignment from 1 to 8 [-Wcast-align] dp = (struct dirent64 *) buf; ^~~~~~~~~~~~~~~~~~~~~~~ libc/sysdeps/linux/common/getdents64.c:92:7: warning: cast from 'char *' to 'struct dirent64 *' increases required alignment from 1 to 8 [-Wcast-align] dp = (struct dirent64 *) ((char *) dp + new_reclen); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ libc/sysdeps/linux/common/getdents64.c:93:8: warning: cast from 'char *' to 'struct kernel_dirent64 *' increases required alignment from 1 to 8 [-Wcast-align] kdp = (struct kernel_dirent64 *) (((char *) kdp) + kdp->d_reclen); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3 warnings generated.
clang -c libc/misc/dirent/readdir.c -o libc/misc/dirent/readdir.os -include ./include/libc-symbols.h -Wall -Wstrict-prototypes -Wstrict-aliasing -Wformat=2 -Wmissing-noreturn -Wmissing-format-attribute -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wnonnull -Wold-style-definition -Wshadow -Wundef -Wdeclaration-after-statement -funsigned-char -fno-builtin -fno-asm -std=gnu99 -fno-stack-protector -nostdinc -I./include -I./include -I. -I./libc/sysdeps/linux -I./libc/sysdeps/linux/x86_64 -Os -funit-at-a-time -fmerge-all-constants -fstrict-aliasing -Wcast-align -fno-common -I./libc/sysdeps/linux/common -I/usr/src/linux-headers-3.2.0-38/include/ -isystem /usr/local/bin/../lib/clang/3.1/include-fixed -isystem /usr/local/bin/../lib/clang/3.1/include -DNDEBUG -fPIC -MT libc/misc/dirent/readdir.os -MD -MP -MF libc/misc/dirent/.readdir.os.dep libc/misc/dirent/readdir.c:41:11: warning: cast from 'char *' to 'struct dirent *' increases required alignment from 1 to 8 [-Wcast-align] de = (struct dirent *) (((char *) dir->dd_buf) + dir->dd_nextloc); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated.
clang -c libc/misc/dirent/readdir64.c -o libc/misc/dirent/readdir64.os -include ./include/libc-symbols.h -Wall -Wstrict-prototypes -Wstrict-aliasing -Wformat=2 -Wmissing-noreturn -Wmissing-format-attribute -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wnonnull -Wold-style-definition -Wshadow -Wundef -Wdeclaration-after-statement -funsigned-char -fno-builtin -fno-asm -std=gnu99 -fno-stack-protector -nostdinc -I./include -I./include -I. -I./libc/sysdeps/linux -I./libc/sysdeps/linux/x86_64 -Os -funit-at-a-time -fmerge-all-constants -fstrict-aliasing -Wcast-align -fno-common -I./libc/sysdeps/linux/common -I/usr/src/linux-headers-3.2.0-38/include/ -isystem /usr/local/bin/../lib/clang/3.1/include-fixed -isystem /usr/local/bin/../lib/clang/3.1/include -DNDEBUG -fPIC -MT libc/misc/dirent/readdir64.os -MD -MP -MF libc/misc/dirent/.readdir64.os.dep libc/misc/dirent/readdir64.c:40:11: warning: cast from 'char *' to 'struct dirent64 *' increases required alignment from 1 to 8 [-Wcast-align] de = (struct dirent64 *) (((char *) dir->dd_buf) + dir->dd_nextloc); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1 warning generated.
clang -c libc/misc/gnu/obstack.c -o libc/misc/gnu/obstack.os -include ./include/libc-symbols.h -Wall -Wstrict-prototypes -Wstrict-aliasing -Wformat=2 -Wmissing-noreturn -Wmissing-format-attribute -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wnonnull -Wold-style-definition -Wshadow -Wundef -Wdeclaration-after-statement -funsigned-char -fno-builtin -fno-asm -std=gnu99 -fno-stack-protector -nostdinc -I./include -I./include -I. -I./libc/sysdeps/linux -I./libc/sysdeps/linux/x86_64 -Os -funit-at-a-time -fmerge-all-constants -fstrict-aliasing -Wcast-align -fno-common -I./libc/sysdeps/linux/common -I/usr/src/linux-headers-3.2.0-38/include/ -isystem /usr/local/bin/../lib/clang/3.1/include-fixed -isystem /usr/local/bin/../lib/clang/3.1/include -DNDEBUG -fPIC -MT libc/misc/gnu/obstack.os -MD -MP -MF libc/misc/gnu/.obstack.os.dep libc/misc/gnu/obstack.c:301:3: warning: cast from 'char *' to 'int *' increases required alignment from 1 to 4 [-Wcast-align] ((COPYING_UNIT *)object_base)[i] ^~~~~~~~~~~~~~~~~~~~~~~~~~~ libc/misc/gnu/obstack.c:302:7: warning: cast from 'char *' to 'int *' increases required alignment from 1 to 4 [-Wcast-align] = ((COPYING_UNIT *)h->object_base)[i]; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2 warnings generated.
clang -c libc/misc/locale/localeconv.c -o libc/misc/locale/localeconv.os -include ./include/libc-symbols.h -Wall -Wstrict-prototypes -Wstrict-aliasing -Wformat=2 -Wmissing-noreturn -Wmissing-format-attribute -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wnonnull -Wold-style-definition -Wshadow -Wundef -Wdeclaration-after-statement -funsigned-char -fno-builtin -fno-asm -std=gnu99 -fno-stack-protector -nostdinc -I./include -I./include -I. -I./libc/sysdeps/linux -I./libc/sysdeps/linux/x86_64 -Os -funit-at-a-time -fmerge-all-constants -fstrict-aliasing -Wcast-align -fno-common -I./libc/sysdeps/linux/common -I/usr/src/linux-headers-3.2.0-38/include/ -isystem /usr/local/bin/../lib/clang/3.1/include-fixed -isystem /usr/local/bin/../lib/clang/3.1/include -DNDEBUG -fPIC -MT libc/misc/locale/localeconv.os -MD -MP -MF libc/misc/locale/.localeconv.os.dep In file included from libc/misc/locale/localeconv.c:8: libc/misc/locale/locale.c:304:4: warning: cast from 'char *' to 'char **' increases required alignment from 1 to 8 [-Wcast-align] *((char **)p) = (char *) decpt; ^~~~~~~~~~ libc/misc/locale/locale.c:307:5: warning: cast from 'char *' to 'char **' increases required alignment from 1 to 8 [-Wcast-align] *((char **)p) = (char *) (decpt+1); ^~~~~~~~~~ 2 warnings generated.