Skip Menu |
 

Download (untitled) / with headers
text/plain 6.4KiB
From krb5-bugs-incoming-bounces@mit.edu Thu Jul 8 17:33:32 2004
Received: from pch.mit.edu (PCH.MIT.EDU [18.7.21.90]) by krbdev.mit.edu (8.9.3p2) with ESMTP
id RAA11639; Thu, 8 Jul 2004 17:33:31 -0400 (EDT)
Received: from pch.mit.edu (localhost [127.0.0.1])
by pch.mit.edu (8.12.8p2/8.12.8) with ESMTP id i68LXVl1008015
for <krb5-send-pr@krbdev.mit.edu>; Thu, 8 Jul 2004 17:33:31 -0400 (EDT)
Received: from pacific-carrier-annex.mit.edu (PACIFIC-CARRIER-ANNEX.MIT.EDU
[18.7.21.83])
by pch.mit.edu (8.12.8p2/8.12.8) with ESMTP id i68KnSl1003970
for <krb5-bugs-incoming@PCH.mit.edu>;
Thu, 8 Jul 2004 16:49:28 -0400 (EDT)
Received: from mailwasher-b.lanl.gov (mailwasher.lanl.gov [192.16.0.25])
i68KnPFp016698
for <krb5-bugs@mit.edu>; Thu, 8 Jul 2004 16:49:25 -0400 (EDT)
Received: from mailrelay3.lanl.gov (localhost.localdomain [127.0.0.1])
i68KnOCp007190
for <krb5-bugs@mit.edu>; Thu, 8 Jul 2004 14:49:24 -0600
Received: from x-mail.lanl.gov (localhost.localdomain [127.0.0.1])
i68KnO24004514; Thu, 8 Jul 2004 14:49:24 -0600
Received: from reinhold.lanl.gov (reinhold.lanl.gov [128.165.116.129])
i68KnOu7032360; Thu, 8 Jul 2004 14:49:24 -0600
Date: Thu, 8 Jul 2004 14:49:24 -0600
From: David Sigeti <sigeti@lanl.gov>
X-X-Sender: rsigeti@reinhold.lanl.gov
To: krb5-bugs@mit.edu
Message-ID: <Pine.CYG.4.58.0407081446570.1764@reinhold.lanl.gov>
X-send-pr-version: 3.99
MIME-Version: 1.0
Content-Type: TEXT/PLAIN; charset=US-ASCII
X-Scanned-By: MIMEDefang 2.35
X-Mailman-Approved-At: Thu, 08 Jul 2004 17:33:30 -0400
cc: David Sigeti <sigeti@lanl.gov>
Subject: Building krb5-1.3.4 under Cygwin
X-BeenThere: krb5-bugs-incoming@mit.edu
X-Mailman-Version: 2.1
Precedence: list
Reply-To: David Sigeti <sigeti@lanl.gov>
Sender: krb5-bugs-incoming-bounces@mit.edu
Errors-To: krb5-bugs-incoming-bounces@mit.edu


Show quoted text
>Submitter-Id: net
>Originator: David Sigeti
>Organization:
Los Alamos National Laboratory
Show quoted text
>Confidential: no
>Synopsis: Patch to build krb5-1.3.4 under Cygwin
>Severity: serious
>Priority: high
>Category: krb5-build
>Class: sw-bug
>Release: krb5-1.3.4
>Environment:
<machine, os, target, libraries (multiple lines)>
System: CYGWIN_NT-5.0 reinhold 1.5.10(0.116/4/2) 2004-05-25 22:07 i686
unknown unknown Cygwin
machine: Windows 2000

Show quoted text
>Description:
<precise description of the problem (multiple lines)>
krb5-1.3.4 does not build under Cygwin. Three problems are encountered:

1. configure fails for lack of a resolver library.

2. Compilation fails because of a mismatch between the
declaration of the function __kdb2_hash_open in file
krb5-1.3.4/src/util/db2/include/db-int.h and the definition in file
krb5-1.3.4/src/util/db2/hash/hash.c. Certain parameters appear
with type int in the declaration but with type int32_t in the
definition. Note that the function appears as __hash_open in
db-int.h because of some preprocessor nonsense.

3. Linking fails because the file
krb5-1.3.4/spermits rc/lib/krb5/os/locate_kdc.c contains a function
(krb5_locate_srv_dns_1) which calls the function
krb5int_make_srv_query_realm which has not been compiled.
krb5int_make_srv_query_realm is defined in
krb5-1.3.4/src/lib/krb5/os/dnssrv.c and is only compiled if the
preprocessor macro KRB5_DNS_LOOKUP is defined. No such conditional
compilation is done on the function in locate_kdc.c that calls
krb5int_make_srv_query_realm. Note that the compilation line for
locate_kdc.c mentions that the function, which is static, is
defined but never used.

Show quoted text
>How-To-Repeat:
<code/input/activities to reproduce the problem (multiple lines)>
Attempt to configure and build under Cygwin. Perform the fixes below
in the order given to see the successive problems.
Show quoted text
>Fix:
<how to correct or work around the problem, if known (multiple
lines)>
1. configure with the --with-netlib option.

2. Change either the declaration (in file
krb5-1.3.4/src/util/db2/include/db-int.h) or the definition (in
file krb5-1.3.4/src/util/db2/hash/hash.c) of the function
__kdb2_hash_open to make the parameter types consistent. (See
patch below.)

3. Insert preprocessor directives into the file
krb5-1.3.4/src/lib/krb5/os/locate_kdc.c to make compilation of the
function krb5_locate_srv_dns_1 conditional on the definition of the
preprocessor macro KRB5_DNS_LOOKUP. Also, insert preprocessor
directives into the file krb5-1.3.4/src/include/k5-int.h to make
the compilation of the declarations of the functions
krb5int_make_srv_query_realm and krb5int_free_srv_dns_data
similarly conditional. (See patch below.)

A patch file made from the distribution of krb5-1.3.4 (downloaded on 6
July 2004) follows. Note that the first two diffs implement fix 3
above and the last diff implements fix 2.

diff -Naur original/krb5-1.3.4/src/include/k5-int.h
local/krb5-1.3.4/src/include/k5-int.h
--- original/krb5-1.3.4/src/include/k5-int.h 2004-01-05
15:49:32.000000000 -0700
+++ local/krb5-1.3.4/src/include/k5-int.h 2004-07-07
13:31:07.621701800 -0600
@@ -1655,12 +1655,14 @@
unsigned short port;
char *host;
};
+#ifdef KRB5_DNS_LOOKUP
krb5_error_code
krb5int_make_srv_query_realm(const krb5_data *realm,
const char *service,
const char *protocol,
struct srv_dns_entry **answers);
void krb5int_free_srv_dns_data(struct srv_dns_entry *);
+#endif /* KRB5_DNS_LOOKUP */

#if defined(macintosh) && defined(__CFM68K__) &&
!defined(__USING_STATIC_LIBS__)
#pragma import reset
diff -Naur original/krb5-1.3.4/src/lib/krb5/os/locate_kdc.c
local/krb5-1.3.4/src/lib/krb5/os/locate_kdc.c
--- original/krb5-1.3.4/src/lib/krb5/os/locate_kdc.c 2004-01-05
19:30:15.000000000 -0700
+++ local/krb5-1.3.4/src/lib/krb5/os/locate_kdc.c 2004-07-07
13:39:02.103040100 -0600
@@ -502,6 +502,7 @@
}
#endif

+#ifdef KRB5_DNS_LOOKUP
static krb5_error_code
krb5_locate_srv_dns_1 (const krb5_data *realm,
const char *service,
@@ -561,6 +562,7 @@
krb5int_free_srv_dns_data(head);
return code;
}
+#endif /* KRB5_DNS_LOOKUP */

/*
* Wrapper function for the two backends
diff -Naur original/krb5-1.3.4/src/util/db2/hash/hash.c
local/krb5-1.3.4/src/util/db2/hash/hash.c
--- original/krb5-1.3.4/src/util/db2/hash/hash.c 2001-07-09
06:06:36.000000000 -0600
+++ local/krb5-1.3.4/src/util/db2/hash/hash.c 2004-07-07
15:55:59.472323600 -0600
@@ -96,7 +96,7 @@
extern DB *
__kdb2_hash_open(file, flags, mode, info, dflags)
const char *file;
- int32_t flags, mode, dflags;
+ int flags, mode, dflags;
const HASHINFO *info; /* Special directives for create */
{
struct stat statbuf;
Date: Thu, 08 Jul 2004 16:03:20 -0600
From: David Sigeti <sigeti@lanl.gov>
To: rt@krbdev.mit.edu
Subject: [krbdev.mit.edu #2628] Patch to build krb5-1.3.4 under Cygwin
RT-Send-Cc:
Dear Kerberos Developers,

Apparently, the mail software I was using to submit my bug report
wrapped some long lines in the patch that I sent with the report. I
believe that I have fixed the problem in this message.

Yours,
David


A patch file made from the distribution of krb5-1.3.4 (downloaded on 6
July 2004) follows.

diff -Naur original/krb5-1.3.4/src/include/k5-int.h local/krb5-1.3.4/src/include/k5-int.h
--- original/krb5-1.3.4/src/include/k5-int.h 2004-01-05 15:49:32.000000000 -0700
+++ local/krb5-1.3.4/src/include/k5-int.h 2004-07-07 13:31:07.621701800 -0600
@@ -1655,12 +1655,14 @@
unsigned short port;
char *host;
};
+#ifdef KRB5_DNS_LOOKUP
krb5_error_code
krb5int_make_srv_query_realm(const krb5_data *realm,
const char *service,
const char *protocol,
struct srv_dns_entry **answers);
void krb5int_free_srv_dns_data(struct srv_dns_entry *);
+#endif /* KRB5_DNS_LOOKUP */

#if defined(macintosh) && defined(__CFM68K__) && !defined(__USING_STATIC_LIBS__)
#pragma import reset
diff -Naur original/krb5-1.3.4/src/lib/krb5/os/locate_kdc.c local/krb5-1.3.4/src/lib/krb5/os/locate_kdc.c
--- original/krb5-1.3.4/src/lib/krb5/os/locate_kdc.c 2004-01-05 19:30:15.000000000 -0700
+++ local/krb5-1.3.4/src/lib/krb5/os/locate_kdc.c 2004-07-07 13:39:02.103040100 -0600
@@ -502,6 +502,7 @@
}
#endif

+#ifdef KRB5_DNS_LOOKUP
static krb5_error_code
krb5_locate_srv_dns_1 (const krb5_data *realm,
const char *service,
@@ -561,6 +562,7 @@
krb5int_free_srv_dns_data(head);
return code;
}
+#endif /* KRB5_DNS_LOOKUP */

/*
* Wrapper function for the two backends
diff -Naur original/krb5-1.3.4/src/util/db2/hash/hash.c local/krb5-1.3.4/src/util/db2/hash/hash.c
--- original/krb5-1.3.4/src/util/db2/hash/hash.c 2001-07-09 06:06:36.000000000 -0600
+++ local/krb5-1.3.4/src/util/db2/hash/hash.c 2004-07-07 15:55:59.472323600 -0600
@@ -96,7 +96,7 @@
extern DB *
__kdb2_hash_open(file, flags, mode, info, dflags)
const char *file;
- int32_t flags, mode, dflags;
+ int flags, mode, dflags;
const HASHINFO *info; /* Special directives for create */
{
struct stat statbuf;
From: raeburn@mit.edu
Subject: CVS Commit
Make __kdb2_hash_open declaration and definition consistent.

Commit By: raeburn



Revision: 18136
Changed Files:
U trunk/src/plugins/kdb/db2/libdb2/hash/hash.c
From: raeburn@mit.edu
Subject: CVS Commit
Conditionalize declarations of krb5int_make_srv_query_realm and
krb5int_free_srv_dns_data on KRB5_DNS_LOOKUP.

Commit By: raeburn



Revision: 18137
Changed Files:
U trunk/src/include/k5-int.h
The suggested conditionalizing of DNS functions has already been done.
The other patches were reasonable general cleanup and have been
installed. I can't currently test a build on cygwin, but (1) cygwin is
low priority for MIT, and (2) this report is kind of old and based on
old sources. So I'm closing it out with these fixes installed; if there
are still cygwin build problems, we can handle them in a new ticket.