mirror of git://sourceware.org/git/glibc.git
As discussed in https://sourceware.org/ml/libc-alpha/2015-10/msg00403.html the setting of _STRING_ARCH_unaligned currently controls the external GLIBC ABI as well as selecting the use of unaligned accesses withing GLIBC. Since _STRING_ARCH_unaligned was recently changed for AArch64, this would potentially break the ABI in GLIBC 2.23, so split the uses and add _STRING_INLINE_unaligned to select the string ABI. This setting must be fixed for each target, while _STRING_ARCH_unaligned may be changed from release to release. _STRING_ARCH_unaligned is used unconditionally in glibc. But <bits/string.h>, which defines _STRING_ARCH_unaligned, isn't included with -Os. Since _STRING_ARCH_unaligned is internal to glibc and may change between glibc releases, it should be made private to glibc. _STRING_ARCH_unaligned should defined in the new string_private.h heade file which is included unconditionally from internal <string.h> for glibc build. [BZ #19462] * bits/string.h (_STRING_ARCH_unaligned): Renamed to ... (_STRING_INLINE_unaligned): This. * include/string.h: Include <string_private.h>. * string/bits/string2.h: Replace _STRING_ARCH_unaligned with _STRING_INLINE_unaligned. * sysdeps/aarch64/bits/string.h (_STRING_ARCH_unaligned): Removed. (_STRING_INLINE_unaligned): New. * sysdeps/aarch64/string_private.h: New file. * sysdeps/generic/string_private.h: Likewise. * sysdeps/m68k/m680x0/m68020/string_private.h: Likewise. * sysdeps/s390/string_private.h: Likewise. * sysdeps/x86/string_private.h: Likewise. * sysdeps/m68k/m680x0/m68020/bits/string.h (_STRING_ARCH_unaligned): Renamed to ... (_STRING_INLINE_unaligned): This. * sysdeps/s390/bits/string.h (_STRING_ARCH_unaligned): Renamed to ... (_STRING_INLINE_unaligned): This. * sysdeps/sparc/bits/string.h (_STRING_ARCH_unaligned): Renamed to ... (_STRING_INLINE_unaligned): This. * sysdeps/x86/bits/string.h (_STRING_ARCH_unaligned): Renamed to ... (_STRING_INLINE_unaligned): This. |
||
|---|---|---|
| .. | ||
| arpa | ||
| bits | ||
| gnu | ||
| net | ||
| netinet | ||
| programs | ||
| protocols | ||
| rpc | ||
| rpcsvc | ||
| sys | ||
| aio.h | ||
| aliases.h | ||
| alloca.h | ||
| argp.h | ||
| argz.h | ||
| assert.h | ||
| atomic.h | ||
| byteswap.h | ||
| caller.h | ||
| complex.h | ||
| cpio.h | ||
| ctype.h | ||
| des.h | ||
| dirent.h | ||
| dlfcn.h | ||
| elf.h | ||
| endian.h | ||
| envz.h | ||
| err.h | ||
| errno.h | ||
| error.h | ||
| execinfo.h | ||
| fcntl.h | ||
| features.h | ||
| fenv.h | ||
| fmtmsg.h | ||
| fnmatch.h | ||
| fpu_control.h | ||
| ftw.h | ||
| gconv.h | ||
| getopt.h | ||
| getopt_int.h | ||
| glob.h | ||
| gmp.h | ||
| gnu-versions.h | ||
| grp.h | ||
| gshadow.h | ||
| iconv.h | ||
| ifaddrs.h | ||
| ifunc-impl-list.h | ||
| inline-hashtab.h | ||
| langinfo.h | ||
| libc-internal.h | ||
| libc-symbols.h | ||
| libgen.h | ||
| libintl.h | ||
| libio.h | ||
| limits.h | ||
| link.h | ||
| list.h | ||
| locale.h | ||
| malloc.h | ||
| math.h | ||
| mcheck.h | ||
| memory.h | ||
| mntent.h | ||
| monetary.h | ||
| mqueue.h | ||
| netdb.h | ||
| netgroup.h | ||
| nl_types.h | ||
| nss.h | ||
| nsswitch.h | ||
| obstack.h | ||
| poll.h | ||
| printf.h | ||
| pthread.h | ||
| pty.h | ||
| pwd.h | ||
| regex.h | ||
| resolv.h | ||
| rounding-mode.h | ||
| sched.h | ||
| scratch_buffer.h | ||
| search.h | ||
| set-hooks.h | ||
| setjmp.h | ||
| sgtty.h | ||
| shadow.h | ||
| shlib-compat.h | ||
| signal.h | ||
| spawn.h | ||
| stab.h | ||
| stackinfo.h | ||
| stap-probe.h | ||
| stdc-predef.h | ||
| stdio.h | ||
| stdio_ext.h | ||
| stdlib.h | ||
| string.h | ||
| strings.h | ||
| stropts.h | ||
| stubs-prologue.h | ||
| syscall.h | ||
| sysexits.h | ||
| syslog.h | ||
| tar.h | ||
| termios.h | ||
| tgmath.h | ||
| time.h | ||
| ttyent.h | ||
| uchar.h | ||
| ucontext.h | ||
| ulimit.h | ||
| unistd.h | ||
| utime.h | ||
| utmp.h | ||
| values.h | ||
| wchar.h | ||
| wctype.h | ||
| wordexp.h | ||
| xlocale.h | ||