Hello,
Samuel Thibault, le Wed 28 May 2008 01:51:56 +0100, a écrit :
> heimdal currently FTBFS on hurd-i386 for two reasons:
>
> - kafs now defines two ioctls, so it has to define the GNU _IOT
> constant, please apply first attached patch.
> - some new occurrences of MAXHOSTNAMELEN appeared, please append the second
> attached patch to 026_posix_max.
Here are updated versions of the two patches.
In the meanwhile, a third reason appeared: cf/pthreads.m4 doesn't handle
the *-*-gnu* case, third patch attached (configure has to be regenerated
of course)
Samuel
--- heimdal-1.1/lib/kafs/kafs.h 2008-05-27 15:38:28.900000000 +0000
+++ heimdal-1.1-mine/lib/kafs/kafs.h 2008-05-27 15:40:15.200000000 +0000
@@ -46,6 +46,9 @@
#define AFSCALL_SETPAG 21
#ifndef _VICEIOCTL
+#ifdef __GNU__
+#define _IOT_ViceIoctl _IOT(_IOTS(caddr_t), 2, _IOTS(short), 2, 0, 0)
+#endif
#define _VICEIOCTL(id) ((unsigned int ) _IOW('V', id, struct ViceIoctl))
#define _AFSCIOCTL(id) ((unsigned int ) _IOW('C', id, struct ViceIoctl))
#endif /* _VICEIOCTL */
--- heimdal-1.1/lib/kafs/afssys.c 2008-01-24 13:11:45.780000000 +0000
+++ heimdal-1.1-mine/lib/kafs/afssys.c 2008-05-27 17:18:11.540000000 +0000
@@ -42,7 +42,10 @@
unsigned long param1;
unsigned long syscall;
};
-#define VIOC_SYSCALL_PROC _IOW('C', 1, void *)
+#ifdef __GNU__
+#define _IOT_procdata _IOT(_IOTS(long), 5, 0, 0, 0, 0)
+#endif
+#define VIOC_SYSCALL_PROC _IOW('C', 1, struct procdata)
struct devdata {
unsigned long syscall;
@@ -54,6 +57,9 @@
unsigned long param6;
unsigned long retval;
};
+#ifdef __GNU__
+#define _IOT_devdata _IOT(_IOTS(long), 8, 0, 0, 0, 0)
+#endif
#ifdef _IOWR
#define VIOC_SYSCALL_DEV _IOWR('C', 2, struct devdata)
#define VIOC_SYSCALL_DEV_OPENAFS _IOWR('C', 1, struct devdata)
--- heimdal-1.1/lib/gssapi/krb5/import_name.c 2008-01-24 13:11:49.000000000
+0000
+++ heimdal-1.1-mine/lib/gssapi/krb5/import_name.c 2008-05-27
18:25:29.120000000 +0000
@@ -93,7 +93,7 @@
char *tmp;
char *p;
char *host;
- char local_hostname[MAXHOSTNAMELEN];
+ char local_hostname[MaxHostNameLen];
krb5_principal princ = NULL;
tmp = malloc (input_name_buffer->length + 1);
--- heimdal-1.1/lib/gssapi/spnego/accept_sec_context.c 2008-01-24
13:11:47.000000000 +0000
+++ heimdal-1.1-mine/lib/gssapi/spnego/accept_sec_context.c 2008-05-27
18:45:52.850000000 +0000
@@ -92,7 +92,7 @@
gss_buffer_t output_token)
{
NegotiationTokenWin nt;
- char hostname[MAXHOSTNAMELEN + 1], *p;
+ char hostname[MaxHostNameLen + 1], *p;
gss_buffer_desc name_buf;
gss_OID name_type;
gss_name_t target_princ;
@@ -421,7 +421,7 @@
if (verify_p) {
gss_name_t name = GSS_C_NO_NAME;
gss_buffer_desc namebuf;
- char *str = NULL, *host, hostname[MAXHOSTNAMELEN];
+ char *str = NULL, *host, hostname[MaxHostNameLen];
host = getenv("GSSAPI_SPNEGO_NAME");
if (host == NULL || issuid()) {
--- heimdal-1.1/appl/gssmask/gssmask.c 2008-01-24 13:10:25.000000000 +0000
+++ heimdal-1.1-mine/appl/gssmask/gssmask.c 2008-05-27 19:20:22.850000000
+0000
@@ -55,7 +55,7 @@
struct handle *handles;
struct sockaddr_storage sa;
socklen_t salen;
- char servername[MAXHOSTNAMELEN];
+ char servername[MaxHostNameLen];
};
FILE *logfile;
@@ -929,7 +929,7 @@
if (moniker) {
c->moniker = estrdup(moniker);
} else {
- char hostname[MAXHOSTNAMELEN];
+ char hostname[MaxHostNameLen];
gethostname(hostname, sizeof(hostname));
asprintf(&c->moniker, "gssmask: %s:%d", hostname, port);
}
--- cf/pthreads.m4.orig 2009-01-31 12:56:51.697292000 +0000
+++ cf/pthreads.m4 2009-01-31 12:56:59.931116000 +0000
@@ -32,6 +32,11 @@
PTHREADS_CFLAGS=-pthread
PTHREADS_LIBS=-pthread
;;
+*-*-gnu*)
+ native_pthread_support=yes
+ PTHREADS_CFLAGS=-pthread
+ PTHREADS_LIBS="-pthread -lpthread"
+ ;;
*-*-linux* | *-*-linux-gnu)
case `uname -r` in
2.*)