freebsd-dev/lib/libc
Peter Wemm 091b8336ae Attempt to move the POSIX iconv* symbols out of runtime linker space.
FreeBSD systems usually implemented this as a third party module and
our implementation hasn't played as nicely with the old way as it could
have.

To that end:
* Rename the iconv* symbols in libc.so.7 to have a __bsd_ prefix.
* Provide .symver compatability with existing 10.x+ binaries that
  referenced the iconv symbols. All existing binaries should work.
* Like on Linux/glibc systems, add a libc_nonshared.a to the ldscript
  at /usr/lib/libc.so.
* Move the "iconv*" wrapper symbols to libc_nonshared.a

This should solve the runtime ambiguity about which symbols resolve
to where.  If you compile against the iconv in libc, your runtime
dependencies will be unambiguous.

Old 9.x libraries and binaries will always resolve against their
libiconv.so.3 like they did on 9.x.  They won't resolve against libc.

Old 10.x binaries will be satisified by the .symver helpers.

This should allow ports to selectively compile against the libiconv
port if needed and it should behave without ambiguity now.

Discussed with:	 kib
2013-11-17 22:52:17 +00:00
..
amd64 libc: Access _logname_valid more efficiently. 2013-08-17 19:24:58 +00:00
arm On ARM EABI double precision floating point values are stored in the 2013-09-07 14:04:10 +00:00
capability - Add manual pages for capability rights (rights(4)), cap_rights_init(3) 2013-11-04 14:10:22 +00:00
compat-43
db db: Use O_CLOEXEC instead of separate fcntl() call. 2013-08-13 19:20:50 +00:00
gdtoa
gen - Add manual pages for capability rights (rights(4)), cap_rights_init(3) 2013-11-04 14:10:22 +00:00
gmon libc: Use O_CLOEXEC when writing gmon files (cc -pg). 2013-08-13 21:45:48 +00:00
i386 libc: Access _logname_valid more efficiently. 2013-08-17 19:24:58 +00:00
ia64 The getcontext() from the __fillcontextx() call in the 2013-05-28 04:54:16 +00:00
iconv Attempt to move the POSIX iconv* symbols out of runtime linker space. 2013-11-17 22:52:17 +00:00
include Change the cap_rights_t type from uint64_t to a structure that we can extend 2013-09-05 00:09:56 +00:00
inet
isc
locale Replace the #define for "iconv" so it is for the function name instead of 2013-07-03 07:03:19 +00:00
mips Remove clause 3 and 4 from TNF licenses 2013-05-29 01:54:10 +00:00
nameser
net Remove an unused variable and fix a memory leak in sctp_connectx(). 2013-09-19 06:19:24 +00:00
nls POSIX 1003.1-2008: add ENOTRECOVERABLE, EOWNERDEAD errnos. 2013-05-04 19:07:22 +00:00
posix1e Fix typo. 2013-11-12 12:23:54 +00:00
powerpc Revert r253748,253749 2013-07-28 18:44:17 +00:00
powerpc64 Revert r253748,253749 2013-07-28 18:44:17 +00:00
quad For ARM EABI we only need a subset of the quad functions, the rest are 2013-01-19 02:33:57 +00:00
regex Fix assignment of maximum bounadary. 2013-03-01 23:26:13 +00:00
resolv libc: Make resolver sockets close-on-exec (SOCK_CLOEXEC). 2013-09-06 23:49:54 +00:00
rpc Assign the len field of the netbuf structure to the current length of 2013-03-01 15:45:57 +00:00
softfloat
sparc64 Prefix the alias macros for members of struct __mcontext with an underscore 2013-07-12 14:24:52 +00:00
stdio Add missing include files for the printf_l and scanf_l man pages. 2013-11-17 02:03:45 +00:00
stdlib system(): Restore behaviour for SIGINT and SIGQUIT. 2013-09-01 19:59:54 +00:00
stdtime Compile contrib/tzcode/stdtime/localtime.c with -fwrapv, since it relies 2013-03-24 01:35:37 +00:00
string Fix typo: site_t -> size_t 2013-11-10 04:06:46 +00:00
sys Fix extattr(2) MLINKS. 2013-11-09 00:36:09 +00:00
uuid
xdr
yp
libc.ldscript Attempt to move the POSIX iconv* symbols out of runtime linker space. 2013-11-17 22:52:17 +00:00
Makefile Change the cap_rights_t type from uint64_t to a structure that we can extend 2013-09-05 00:09:56 +00:00
Versions.def