- Hopefully fix (#3984) compiler errors on Solaris while not introducing too many new ones on the other platforms

- With _BSD_SOURCE now explicitly defined bring back strdup to vm_x86_64_assembler.c
This commit is contained in:
Thilo Schulz 2011-02-06 20:26:18 +00:00
parent 58a8f5ef8b
commit 0e6427f3ff
3 changed files with 14 additions and 7 deletions

View file

@ -50,6 +50,7 @@ typedef unsigned short sa_family_t;
# define EADDRNOTAVAIL WSAEADDRNOTAVAIL # define EADDRNOTAVAIL WSAEADDRNOTAVAIL
# define EAFNOSUPPORT WSAEAFNOSUPPORT # define EAFNOSUPPORT WSAEAFNOSUPPORT
# define ECONNRESET WSAECONNRESET # define ECONNRESET WSAECONNRESET
typedef u_long ioctlarg_t;
# define socketError WSAGetLastError( ) # define socketError WSAGetLastError( )
static WSADATA winsockdata; static WSADATA winsockdata;
@ -85,6 +86,7 @@ typedef int SOCKET;
# define SOCKET_ERROR -1 # define SOCKET_ERROR -1
# define closesocket close # define closesocket close
# define ioctlsocket ioctl # define ioctlsocket ioctl
typedef int ioctlarg_t;
# define socketError errno # define socketError errno
#endif #endif
@ -831,7 +833,7 @@ NET_IPSocket
int NET_IPSocket( char *net_interface, int port, int *err ) { int NET_IPSocket( char *net_interface, int port, int *err ) {
SOCKET newsocket; SOCKET newsocket;
struct sockaddr_in address; struct sockaddr_in address;
u_long _true = 1; ioctlarg_t _true = 1;
int i = 1; int i = 1;
*err = 0; *err = 0;
@ -899,7 +901,7 @@ NET_IP6Socket
int NET_IP6Socket( char *net_interface, int port, struct sockaddr_in6 *bindto, int *err ) { int NET_IP6Socket( char *net_interface, int port, struct sockaddr_in6 *bindto, int *err ) {
SOCKET newsocket; SOCKET newsocket;
struct sockaddr_in6 address; struct sockaddr_in6 address;
u_long _true = 1; ioctlarg_t _true = 1;
*err = 0; *err = 0;

View file

@ -23,6 +23,14 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#ifndef __Q_SHARED_H #ifndef __Q_SHARED_H
#define __Q_SHARED_H #define __Q_SHARED_H
#ifndef _BSD_SOURCE
#define _BSD_SOURCE
#endif
#ifndef _POSIX_C_SOURCE
#define _POSIX_C_SOURCE 200112L
#endif
// q_shared.h -- included first by ALL program modules. // q_shared.h -- included first by ALL program modules.
// A user mod should never modify this file // A user mod should never modify this file

View file

@ -241,14 +241,11 @@ static void hash_add_label(const char* label, unsigned address)
{ {
struct hashentry* h; struct hashentry* h;
unsigned i = hashkey(label, -1U); unsigned i = hashkey(label, -1U);
int labellen;
i %= sizeof(labelhash)/sizeof(labelhash[0]); i %= sizeof(labelhash)/sizeof(labelhash[0]);
h = malloc(sizeof(struct hashentry)); h = malloc(sizeof(struct hashentry));
labellen = strlen(label) + 1; h->label = strdup(label);
h->label = malloc(labellen);
memcpy(h->label, label, labellen);
h->address = address; h->address = address;
h->next = labelhash[i]; h->next = labelhash[i];