Description: redefine_extname sets socket to __xnet_socket, and "#pragma weak socket _socket" becomes "#pragma __xnet_socket _socket", and thus __xnet_socket is multiple defined in assembler code. Similar for other weaks, but "bind" for example is not defined at all. Put all weak pragmas before headers so redefine_extname is not in action. Index: b/usr/src/lib/libsocket/socket/socket.c =================================================================== --- a/usr/src/lib/libsocket/socket/socket.c +++ b/usr/src/lib/libsocket/socket/socket.c @@ -35,6 +35,8 @@ * contributors. */ +#pragma weak socket = _socket + #include #include #include @@ -50,8 +52,6 @@ extern int _setsockopt(); int _socket_create(int, int, int, int); -#pragma weak socket = _socket - int _socket(int family, int type, int protocol) { Index: b/usr/src/lib/libsocket/socket/socketpair.c =================================================================== --- a/usr/src/lib/libsocket/socket/socketpair.c +++ b/usr/src/lib/libsocket/socket/socketpair.c @@ -39,6 +39,8 @@ #pragma ident "%Z%%M% %I% %E% SMI" +#pragma weak socketpair = _socketpair + #include #include #include @@ -53,8 +55,6 @@ extern int _so_socketpair(int*); int _socketpair_create(int, int, int, int*, int); -#pragma weak socketpair = _socketpair - int _socketpair(int family, int type, int protocol, int sv[2]) { Index: b/usr/src/lib/libsocket/socket/weaks.c =================================================================== --- a/usr/src/lib/libsocket/socket/weaks.c +++ b/usr/src/lib/libsocket/socket/weaks.c @@ -26,21 +26,6 @@ /* Copyright (c) 2013, OmniTI Computer Consulting, Inc. All rights reserved. */ -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - #pragma weak bind = _bind #pragma weak listen = _listen #pragma weak accept = _accept @@ -58,6 +43,21 @@ #pragma weak getsockopt = _getsockopt #pragma weak setsockopt = _setsockopt +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + extern int _so_bind(); extern int _so_listen(); extern int _so_accept();