Merge "Moved to a more openbsd-like fenv.h"
Moved to a more openbsd-like fenv.h
Factored out common declarations to include/fenv.h and pushed
the implementation to .c files.
Bug: 11050744
Change-Id: I446b13cc4bc599d328343a8d392b07de280f6304
Factored out common declarations to include/fenv.h and pushed
the implementation to .c files.
Bug: 11050744
Change-Id: I446b13cc4bc599d328343a8d392b07de280f6304
Merge "Fix log_backtrace assertion failure caused by LP64 fix."
Fix log_backtrace assertion failure caused by LP64 fix.
When libc.debug.malloc is enabled, stack backtraces fail with:
bionic/libc/bionic/libc_logging.cpp:378: assertion "conversion
specifier unsupported" failed
The cause was a change to the format specifier from "%08x" to
"%0*x" to pass the field width as an additional parameter.
Unfortunately this modifier isn't supported by out_vformat() in
libc_logging.cpp.
Changed to use "%016x" if __LP64__ is defined; "%08x" otherwise.
Bug: 13177507
Change-Id: Ibf07263acf14da086d3c3788872f4b5477bd5708
When libc.debug.malloc is enabled, stack backtraces fail with:
bionic/libc/bionic/libc_logging.cpp:378: assertion "conversion
specifier unsupported" failed
The cause was a change to the format specifier from "%08x" to
"%0*x" to pass the field width as an additional parameter.
Unfortunately this modifier isn't supported by out_vformat() in
libc_logging.cpp.
Changed to use "%016x" if __LP64__ is defined; "%08x" otherwise.
Bug: 13177507
Change-Id: Ibf07263acf14da086d3c3788872f4b5477bd5708
Merge "Switch to current OpenBSD system.c."
Switch to current OpenBSD system.c.
Change-Id: Ie2df60f0d55dca69149ffe064f10183411407987
Change-Id: Ie2df60f0d55dca69149ffe064f10183411407987
Merge "Fix LP64 builds after OpenBSD string changes."
Fix LP64 builds after OpenBSD string changes.
Change-Id: I07202f6484e716d153d0387fcfc023e119438251
Change-Id: I07202f6484e716d153d0387fcfc023e119438251
Merge "More OpenBSD cleanup (primarily string)."
Merge "Added ftw64, nftw64"
Merge "Added mkstemp64"
More OpenBSD cleanup (primarily string).
This patch removes the string/ and wchar/ directories.
Change-Id: Ia489904bc67047e4bc79acb1f3eec21aa3fe5f0d
This patch removes the string/ and wchar/ directories.
Change-Id: Ia489904bc67047e4bc79acb1f3eec21aa3fe5f0d
Merge "Remove <asm/page.h>."
Remove <asm/page.h>.
If we have PAGE_SIZE/PAGESIZE, POSIX says they should be in <limits.h>.
Change-Id: I3c2d574ea2aea81f524874a156361411a4ffa18e
If we have PAGE_SIZE/PAGESIZE, POSIX says they should be in <limits.h>.
Change-Id: I3c2d574ea2aea81f524874a156361411a4ffa18e
Merge "Fix 64-bit build."
Fix 64-bit build.
A warning about signed vs unsigned comparison was converted
into an error here :
...
struct stat st;
if (st.st_size > sizeof(prop_area) {
...
st_size is either an off64_t, which is a signed type. It's
worth investigating why this didn't trigger a warning on 32 bit,
where it's signed as well.
Change-Id: Ib2622bd5c444ddcfa7fb2141f00332cbb4a0818b
A warning about signed vs unsigned comparison was converted
into an error here :
...
struct stat st;
if (st.st_size > sizeof(prop_area) {
...
st_size is either an off64_t, which is a signed type. It's
worth investigating why this didn't trigger a warning on 32 bit,
where it's signed as well.
Change-Id: Ib2622bd5c444ddcfa7fb2141f00332cbb4a0818b
Merge "Move system_properties over to C++."
Move system_properties over to C++.
This change constitutes the minimum amount of
work required to move the code over to C++, address
compiler warnings, and to make it const correct and
idiomatic (within the constraints of being called
from C code).
bug: 13058886
Change-Id: Ic78cf91b7c8e8f07b4ab0781333a9e243763298c
This change constitutes the minimum amount of
work required to move the code over to C++, address
compiler warnings, and to make it const correct and
idiomatic (within the constraints of being called
from C code).
bug: 13058886
Change-Id: Ic78cf91b7c8e8f07b4ab0781333a9e243763298c
Merge "Fix a typo in HACKING.txt."
Fix a typo in HACKING.txt.
Change-Id: If1cc18776d873cb5966186b65b8831677df77aaf
Change-Id: If1cc18776d873cb5966186b65b8831677df77aaf
Merge "Clean up our OpenBSD usage."
Clean up our OpenBSD usage.
Also undo some of the mess where we have OpenBSD <stdio.h> but a mix of
different BSD's implementations.
In this first pass, I've only moved easy OpenBSD stuff.
Change-Id: Iae67b02cde6dba9d8d06fedeb53efbfdac0a8cf6
Also undo some of the mess where we have OpenBSD <stdio.h> but a mix of
different BSD's implementations.
In this first pass, I've only moved easy OpenBSD stuff.
Change-Id: Iae67b02cde6dba9d8d06fedeb53efbfdac0a8cf6
Merge "Fixed int fast types for LP64"
Merge "Stop asking GCC to cause trouble."
Stop asking GCC to cause trouble.
Why do we see so many bogus strict-aliasing warnings? Because we asked GCC to
cause trouble on arm and mips.
Change-Id: I25d7fd036b6afff7ccfa799abe0dc1579ead2847
Why do we see so many bogus strict-aliasing warnings? Because we asked GCC to
cause trouble on arm and mips.
Change-Id: I25d7fd036b6afff7ccfa799abe0dc1579ead2847
Merge "Move the upstream-netbsd libc files into the correct directory."
Move the upstream-netbsd libc files into the correct directory.
I screwed up when I originally imported these files; they're in lib/libc/
in the upstream tree; there is no top-level libc/ (though there is a top-level
common/, so those files stay where they are).
Change-Id: I7c5e2224a4441ab0e33616a855a8c6aacfeac46f
I screwed up when I originally imported these files; they're in lib/libc/
in the upstream tree; there is no top-level libc/ (though there is a top-level
common/, so those files stay where they are).
Change-Id: I7c5e2224a4441ab0e33616a855a8c6aacfeac46f
Merge "Remove two DNS files that weren't being built."
Merge "Unify our assembler macros."
Remove two DNS files that weren't being built.
And switch the makefile to just building everything in the relevant directory.
Change-Id: Ia7785c4dcabb51639c2230026f8a8a9eff919a36
And switch the makefile to just building everything in the relevant directory.
Change-Id: Ia7785c4dcabb51639c2230026f8a8a9eff919a36
Unify our assembler macros.
Our <machine/asm.h> files were modified from upstream, to the extent
that no architecture was actually using the upstream ENTRY or END macros,
assuming that architecture even had such a macro upstream. This patch moves
everyone to the same macros, with just a few tweaks remaining in the
<machine/asm.h> files, which no one should now use directly.
I've removed most of the unused cruft from the <machine/asm.h> files, though
there's still rather a lot in the mips/mips64 ones.
Bug: 12229603
Change-Id: I2fff287dc571ac1087abe9070362fb9420d85d6d
Our <machine/asm.h> files were modified from upstream, to the extent
that no architecture was actually using the upstream ENTRY or END macros,
assuming that architecture even had such a macro upstream. This patch moves
everyone to the same macros, with just a few tweaks remaining in the
<machine/asm.h> files, which no one should now use directly.
I've removed most of the unused cruft from the <machine/asm.h> files, though
there's still rather a lot in the mips/mips64 ones.
Bug: 12229603
Change-Id: I2fff287dc571ac1087abe9070362fb9420d85d6d
Merge "Fix mips64 crt build."
Fix mips64 crt build.
This was broken during the multi-arch makefile changes.
Change-Id: Id25cf3273f63c11fbca1cff944fc5e1bf765c636
This was broken during the multi-arch makefile changes.
Change-Id: Id25cf3273f63c11fbca1cff944fc5e1bf765c636
Merge "Remove useless _C_LABEL from our assembler source."
Remove useless _C_LABEL from our assembler source.
Change-Id: I41a9181537c70ecc69ef8035132c9a83811a40d0
Change-Id: I41a9181537c70ecc69ef8035132c9a83811a40d0
Merge "Stop advertising an arm32-specific hack like it's a build system feature."
Merge "Added script generating additions to libgcc_compat.c from linker errors"
Stop advertising an arm32-specific hack like it's a build system feature.
Change-Id: I3a830b4a3516b6eb8e4f8e6e6b122a22a2e341df
Change-Id: I3a830b4a3516b6eb8e4f8e6e6b122a22a2e341df
Added script generating additions to libgcc_compat.c from linker errors
bug: 12234455
Change-Id: Icac35237f06e75745da5a91d9c4c941d7df4f84d
bug: 12234455
Change-Id: Icac35237f06e75745da5a91d9c4c941d7df4f84d
Merge "Don't explicitly list the tzcode files."
Don't explicitly list the tzcode files.
Change-Id: I3ac19899523ac1f5fd2fdd6c942aefce75a964a4
Change-Id: I3ac19899523ac1f5fd2fdd6c942aefce75a964a4
Merge "Fix signbit / infinite / isinf / isnan unit tests."
Merge "Remove the useless _C_LABEL from generated system calls."
Remove the useless _C_LABEL from generated system calls.
Change-Id: Id1d2fd39972652831ea825f6f9cf940b08f42b5c
Change-Id: Id1d2fd39972652831ea825f6f9cf940b08f42b5c
Merge "Linker writes to wrong memory location when processing DT_MIPS_RLD_MAP"
Merge "Make mips/mips64 syscall stubs more like the other architectures."
Merge "Top-level documentation about working on bionic."
Make mips/mips64 syscall stubs more like the other architectures.
Change-Id: I55f8c1a95f643a6e484f12fbcc25e2c77e55b6b8
Change-Id: I55f8c1a95f643a6e484f12fbcc25e2c77e55b6b8
Merge "Make mips generated assembler more like the mips64 stuff."
Make mips generated assembler more like the mips64 stuff.
I broke the mips build yesterday because it doesn't use
<private/bionic_asm.h> like the other architectures, including mips64.
I want to move mips closer to mips64 to try to avoid this kind of thing
in future.
Change-Id: Idb985587ff355b9e5e765c1f5671dc0144cd2488
I broke the mips build yesterday because it doesn't use
<private/bionic_asm.h> like the other architectures, including mips64.
I want to move mips closer to mips64 to try to avoid this kind of thing
in future.
Change-Id: Idb985587ff355b9e5e765c1f5671dc0144cd2488
Fix signbit / infinite / isinf / isnan unit tests.
Turns out stlport isn't broken. <cmath> (included
transitively via gtest in our case) is not required
to make C99 math macros (like signbit) available, nor is
it required to preserve them if they're already defined.
It is only required to make the equivalent functions in
namespace std available.
I couldn't find any documentation of required behaviour for
programs that include both <math.h> and <cmath>.
I've verified experimentally that llvm's libc++ and gnu
stl behave the same as stlport.
bug: 12935307
Change-Id: I9dc5cc0fd9f4f259abc8eefb280177cdd092a94b
Turns out stlport isn't broken. <cmath> (included
transitively via gtest in our case) is not required
to make C99 math macros (like signbit) available, nor is
it required to preserve them if they're already defined.
It is only required to make the equivalent functions in
namespace std available.
I couldn't find any documentation of required behaviour for
programs that include both <math.h> and <cmath>.
I've verified experimentally that llvm's libc++ and gnu
stl behave the same as stlport.
bug: 12935307
Change-Id: I9dc5cc0fd9f4f259abc8eefb280177cdd092a94b
Top-level documentation about working on bionic.
Change-Id: If0a531865fa9c0d57486b98d4b78e3efcbf4e1d1
Change-Id: If0a531865fa9c0d57486b98d4b78e3efcbf4e1d1
Merge "Use uid_t and gid_t for st_uid and st_gid in struct stat."
Merge "Fix build by avoiding the _C_LABEL macro."
Use uid_t and gid_t for st_uid and st_gid in struct stat.
Change-Id: Ide62dc714d76d881e3aa79e7a59ee6533a23dd00
Change-Id: Ide62dc714d76d881e3aa79e7a59ee6533a23dd00
Fix build by avoiding the _C_LABEL macro.
Change-Id: Ide367c2b65071388bd95fbc81a4ed6ae94aec4e4
Change-Id: Ide367c2b65071388bd95fbc81a4ed6ae94aec4e4
Linker writes to wrong memory location when processing DT_MIPS_RLD_MAP
When bionic's dynamic linker processes the .dynamic section of a MIPS ELF binary and encounters the DT_MIPS_RLD_MAP dynamic array tag, it calculates the address of where to write a pointer to the _r_debug structure. The current implementation simply reads the value given in the d_ptr field and writes the pointer address to that location. However, this value has to be adjusted to reflect the real load address of the binary. Otherwise the linker will write to a faulty location possibly resulting in a crash when linking a MIPS binary that includes DT_MIPS_RLD_MAP. This change corrects that problem.
Change-Id: I1a91874f7ab47289001fe72d9016660c14c70362
Signed-off-by: Benjamin Adolphi <b.adolphi@gmail.com>
When bionic's dynamic linker processes the .dynamic section of a MIPS ELF binary and encounters the DT_MIPS_RLD_MAP dynamic array tag, it calculates the address of where to write a pointer to the _r_debug structure. The current implementation simply reads the value given in the d_ptr field and writes the pointer address to that location. However, this value has to be adjusted to reflect the real load address of the binary. Otherwise the linker will write to a faulty location possibly resulting in a crash when linking a MIPS binary that includes DT_MIPS_RLD_MAP. This change corrects that problem.
Change-Id: I1a91874f7ab47289001fe72d9016660c14c70362
Signed-off-by: Benjamin Adolphi <b.adolphi@gmail.com>
Merge "Add missing file from previous change."
Add missing file from previous change.
Change-Id: Id25000162a9ed76ce756842bdc09fe9afff9528f
Change-Id: Id25000162a9ed76ce756842bdc09fe9afff9528f
Merge "Implement some of the missing LFS64 support."
Implement some of the missing LFS64 support.
This gives us:
* <dirent.h>
struct dirent64
readdir64, readdir64_r, alphasort64, scandir64
* <fcntl.h>
creat64, openat64, open64.
* <sys/stat.h>
struct stat64
fstat64, fstatat64, lstat64, stat64.
* <sys/statvfs.h>
struct statvfs64
statvfs64, fstatvfs64.
* <sys/vfs.h>
struct statfs64
statfs64, fstatfs64.
This also removes some of the incorrect #define hacks we've had in the
past (for stat64, for example, which we promised to clean up way back
in bug 8472078).
Bug: 11865851
Bug: 8472078
Change-Id: Ia46443521918519f2dfa64d4621027dfd13ac566
This gives us:
* <dirent.h>
struct dirent64
readdir64, readdir64_r, alphasort64, scandir64
* <fcntl.h>
creat64, openat64, open64.
* <sys/stat.h>
struct stat64
fstat64, fstatat64, lstat64, stat64.
* <sys/statvfs.h>
struct statvfs64
statvfs64, fstatvfs64.
* <sys/vfs.h>
struct statfs64
statfs64, fstatfs64.
This also removes some of the incorrect #define hacks we've had in the
past (for stat64, for example, which we promised to clean up way back
in bug 8472078).
Bug: 11865851
Bug: 8472078
Change-Id: Ia46443521918519f2dfa64d4621027dfd13ac566
Merge "Fix x86 build."
Fix x86 build.
Change-Id: Iee6e5884288f7da6c955694cfe32fecfd9c9e263
Change-Id: Iee6e5884288f7da6c955694cfe32fecfd9c9e263
Merge "bionic: fix __set_errno for arm64 syscalls that return a 64-bit value"
bionic: fix __set_errno for arm64 syscalls that return a 64-bit value
bionic/libc/arch-arm64/syscalls/read.S ends with:
b.hi __set_errno
ret
END(read)
If __set_errno returns int, it will set w0 to 0xFFFFFFFF, which means
x0 is 0x00000000FFFFFFFF. When interpreted as a ssize_t that is
INT_MAX, not -1.
Change __set_errno to return long, which will cause x0 to be set instead
of w0.
Change-Id: I9f9ea0f2995928d2ea240eb2ff7758ecdf0ff412
bionic/libc/arch-arm64/syscalls/read.S ends with:
b.hi __set_errno
ret
END(read)
If __set_errno returns int, it will set w0 to 0xFFFFFFFF, which means
x0 is 0x00000000FFFFFFFF. When interpreted as a ssize_t that is
INT_MAX, not -1.
Change __set_errno to return long, which will cause x0 to be set instead
of w0.
Change-Id: I9f9ea0f2995928d2ea240eb2ff7758ecdf0ff412
Merge "Clean up warnings in libstdc++."
Merge "Clean up various warnings in bionic."
Clean up various warnings in bionic.
Change-Id: Ic57541d0a567fd4ae79f0ad59b2ffde1130eb7d2
Change-Id: Ic57541d0a567fd4ae79f0ad59b2ffde1130eb7d2
Clean up warnings in libstdc++.
Change-Id: Ie71a2fdf227e7a5fc9a446bb1be110da9b3a4280
Change-Id: Ie71a2fdf227e7a5fc9a446bb1be110da9b3a4280
Merge "Remove duplicate definitions of MIN and MAX."
Remove duplicate definitions of MIN and MAX.
These were needed when bionic's header files were missing these macros (though
it would have made a lot more sense to just fix the header files!) but cause
warnings now.
Change-Id: I65a677122f4f6bd07dffc3f37a0c4c0e823d1bb0
These were needed when bionic's header files were missing these macros (though
it would have made a lot more sense to just fix the header files!) but cause
warnings now.
Change-Id: I65a677122f4f6bd07dffc3f37a0c4c0e823d1bb0
Merge "build linker and linker64 on 64-bit architectures"
build linker and linker64 on 64-bit architectures
Change-Id: I400bbaf5a779fc427de4c3d86c66548b0179b10d
Change-Id: I400bbaf5a779fc427de4c3d86c66548b0179b10d
Merge "Restore sys_signame for LP64."
Restore sys_signame for LP64.
mksh is using this, and we probably build as much BSD source as glibc source.
Change-Id: I400d255a67f9614ca9e57090e3a2e49d2b10cba4
mksh is using this, and we probably build as much BSD source as glibc source.
Change-Id: I400d255a67f9614ca9e57090e3a2e49d2b10cba4
Merge "Remove unused variables not spotted by GCC."
Remove unused variables not spotted by GCC.
Change-Id: I49a16096bc0f41f3ad0007249161e8bdfcf3438c
Change-Id: I49a16096bc0f41f3ad0007249161e8bdfcf3438c
Merge "Clean up sys_signame and sys_siglist a little."
Clean up sys_signame and sys_siglist a little.
We don't need quite so much duplication because we already have a way
to get the signal number from its name, and that already copes with the
fact that the mips/mips64 numbers are different from everyone else's.
Also remove sys_signame from LP64. glibc doesn't have this BSD-ism.
Change-Id: I6dc411a3d73589383c85d3b07d9d648311492a10
We don't need quite so much duplication because we already have a way
to get the signal number from its name, and that already copes with the
fact that the mips/mips64 numbers are different from everyone else's.
Also remove sys_signame from LP64. glibc doesn't have this BSD-ism.
Change-Id: I6dc411a3d73589383c85d3b07d9d648311492a10
Merge "Fix missing args."
Fix missing args.
Change-Id: I89a366db984ea6b2553896a4351e59bb91f93040
Change-Id: I89a366db984ea6b2553896a4351e59bb91f93040
Merge "Reconfig libc's Android.mk to build for multilib"
Reconfig libc's Android.mk to build for multilib
1. Moved arch-specific setup to their own files:
- <arch>/<arch>.mk, arch-specific configs. Variables in those config
end with the arch name.
- removed the extra complexity introduced by function libc-add-cpu-variant-src,
which seems to be not very useful these days.
2. Separated out the crt object files generation rules and set up the
rules for both TARGET_ARCH and TARGET_2ND_ARCH.
3. Build all the libraries for both TARGET_ARCH and TARGET_2ND_ARCH,
with the arch-specific LOCAL_ variables.
Bug: 11654773
Change-Id: I9c2d85db0affa49199d182236d2210060a321421
1. Moved arch-specific setup to their own files:
- <arch>/<arch>.mk, arch-specific configs. Variables in those config
end with the arch name.
- removed the extra complexity introduced by function libc-add-cpu-variant-src,
which seems to be not very useful these days.
2. Separated out the crt object files generation rules and set up the
rules for both TARGET_ARCH and TARGET_2ND_ARCH.
3. Build all the libraries for both TARGET_ARCH and TARGET_2ND_ARCH,
with the arch-specific LOCAL_ variables.
Bug: 11654773
Change-Id: I9c2d85db0affa49199d182236d2210060a321421
Merge "Fix NSIG."
Fix NSIG.
Our sigset_t definition hasn't been tied to our NSIG definition since we
switched to uapi headers, so we can now fix it without breaking the LP32 ABI.
The kernel uapi headers define and use _NSIG, so we need to have our scripts
rename the kernel's definitions out of the way, then we can define _NSIG
and NSIG in terms of the kernel's off-by-one value.
Bug: 12938442
Change-Id: Ic7c86fd5be5ad1d822f7b2b1d88c8a0d70a1ac0f
Our sigset_t definition hasn't been tied to our NSIG definition since we
switched to uapi headers, so we can now fix it without breaking the LP32 ABI.
The kernel uapi headers define and use _NSIG, so we need to have our scripts
rename the kernel's definitions out of the way, then we can define _NSIG
and NSIG in terms of the kernel's off-by-one value.
Bug: 12938442
Change-Id: Ic7c86fd5be5ad1d822f7b2b1d88c8a0d70a1ac0f
Merge "Clean up all the lint cpplint can find in the dynamic linker."
Clean up all the lint cpplint can find in the dynamic linker.
Change-Id: Ic9ee7153817c22a252cc4b309283e355b623cab9
Change-Id: Ic9ee7153817c22a252cc4b309283e355b623cab9
Merge "[MIPS64] Dynamic linker"
[MIPS64] Dynamic linker
Change-Id: I937c7c776cae3d66e214798d5217a922cd106bfc
Signed-off-by: Chris Dearman <chris.dearman@imgtec.com>
Signed-off-by: Duane Sand <duane.sand@imgtec.com>
Change-Id: I937c7c776cae3d66e214798d5217a922cd106bfc
Signed-off-by: Chris Dearman <chris.dearman@imgtec.com>
Signed-off-by: Duane Sand <duane.sand@imgtec.com>
Merge "Build syscall stubs in their own library."
Build syscall stubs in their own library.
This lets us lose the auto-generated makefiles.
Change-Id: I2de0c71b3b9c08f9cce8f4ff7fd7254dda008c86
This lets us lose the auto-generated makefiles.
Change-Id: I2de0c71b3b9c08f9cce8f4ff7fd7254dda008c86
Merge "Clean up cacheflush."
Clean up cacheflush.
No cacheflush for LP64; use the GCC builtin instead. Clean up the
32-bit MIPS implementation now we no longer need to worry about
old versions of GCC.
Bug: 12924756
Change-Id: Ie23955b3ec194e226c4b2bce35b11d5e061f4753
No cacheflush for LP64; use the GCC builtin instead. Clean up the
32-bit MIPS implementation now we no longer need to worry about
old versions of GCC.
Bug: 12924756
Change-Id: Ie23955b3ec194e226c4b2bce35b11d5e061f4753
Merge "Switch <elf.h> over to linux uapi under the covers."
Switch <elf.h> over to linux uapi under the covers.
Remove the linker's reliance on BSD cruft and use the glibc-style
ElfW macro. (Other code too, but the linker contains the majority
of the code that needs to work for Elf32 and Elf64.)
All platforms need dl_iterate_phdr_static, so it doesn't make sense
to have that part of the per-architecture configuration.
Bug: 12476126
Change-Id: I1d7f918f1303a392794a6cd8b3512ff56bd6e487
Remove the linker's reliance on BSD cruft and use the glibc-style
ElfW macro. (Other code too, but the linker contains the majority
of the code that needs to work for Elf32 and Elf64.)
All platforms need dl_iterate_phdr_static, so it doesn't make sense
to have that part of the per-architecture configuration.
Bug: 12476126
Change-Id: I1d7f918f1303a392794a6cd8b3512ff56bd6e487
Merge "Fix <link.h>."
Fix <link.h>.
Also move some of the stuff that should be in <link.h> out of the
private "linker.h", to make it clearer that these are public API
known to gdb that we can't change.
Bug: 12554197
Change-Id: I830e1260d3d8b833ed99bc1518f1c6b6102be8af
Also move some of the stuff that should be in <link.h> out of the
private "linker.h", to make it clearer that these are public API
known to gdb that we can't change.
Bug: 12554197
Change-Id: I830e1260d3d8b833ed99bc1518f1c6b6102be8af