__attribute__ ((visibility("default"))) ssize_t
recvmsg(int sockfd, struct msghdr *msg, int flags)
{
	wrapped_calls_recvmsg++;

	if (fall_back && (flags & MSG_CMSG_CLOEXEC)) {
		errno = EINVAL;
		return -1;
	}

	return real_recvmsg(sockfd, msg, flags);
}
ssize_t
recvmsg(int s, struct msghdr *msg, int flags) 
{
  ssize_t retval;

  print_trace ("%*srecvmsg(%d, %p, %d)=...\n", indent, "",
	       s, msg, flags);
  indent+=2;

  /* call the real recvmsg function */
  retval = real_recvmsg (s, msg, flags);

  indent-=2;
  print_trace ("%*srecvmsg(%d, %p, %d)=%d\n", indent, "", 
	       s, msg, flags, retval);

  return retval;
}